Jump to content

Warfarin: The Tricky Thief


Recommended Posts

Years ago, a moody teenager cobbled together a character mod that did fairly well up until it completely broke. Now, that teenager is back as a responsible adult with a 9-5 job to bring you...

 

Warfarin: The Tricky Thief

warfarinportrait.thumb.png.d46b0c86573c8a021e57790e54d2e567.png

 

Over these past weeks I've completely remade the mod to be compatible with all mods and DLCs currently out there. As well as many other things!;

All new looks! Warfarin's textures have been updated to look much more crisp, and their equipment has recieved quite the overhaul.

Spoiler

Hats.thumb.png.8bf159fe226b97f3f19e5b30fabcb0f9.pngWeapons.thumb.png.817e58c2a4f1589d4cb5a4af36fea2b8.png

The mod also brings a great deal of rebalances:

STEALTH.

Stealth now depends on the amount of light nearby while near objects you can hide in; less light means enemies have to be closer to spot you. Chopping trees or other noisy actions will immediately take you out of stealth.

Backstabbing is now its own right-click prompt when an enemy is in range, and Warfarin now lunges towards the target. No more clunkily trying to roll towards your targets to try and backstab them in the window of time before stealth updates!

stealth.png.8447f0b587d8c3742378ffe3d2f2c0ce.png

MOVEMENT.

Warfarin's jump has been replaced with a short dash much like Wheeler's dodge. However Warfarin can still dash over a wall to jump a fair distance over terrain! Much like before, Warfarin can still dash into the ocean, though now you will wake up at a completely random spot in the map with 75% of your current stats taken. It won't be able to kill you, but it's not something you'd want to use unless you're desperate! 

 

 

Hallowed Mask now requires living logs instead of marble. Its armour rating has been reduced, and syphoning health from enemies now uses sanity.

 

Hidey Hood now requires just grass and rope. It no longer drains sanity when hiding you, but it now perishes after 2 minutes of use.

 

Mr. Stabby has been replaced by the Ceremonial Dagger. This dagger is made with thulecite at the Ancient Pseudoscience Station. It functions mostly the same in that it makes you able to backstab from longer ranges, but the range has been reduced and it only uses extra durability/sanity if the target is too far away for a normal backstab. It can no longer be refueled but deals greater damage.

 

Many more general changes have taken place, including changed crafting recipes. Damage from daggers has been normalized and bleeding procs have been nerfed a bit -- since a stacking DoT that increases over time was broken!

 

 

Things are just about done here and the mod should be releasing within the next 2 days! I'll be keeping an eye out for requests and feedback, but keep in mind I won't be adding NEW things to the mod because there's been enough feature creep already!

 

 

...And after that, It's gettin' started on porting it to Together. That should hopefully not take too horribly long.

 

 

 

 

 

 

Link to comment
Share on other sites

Played a world for a while with Warfarin last night, and I gotta say they are definitely a lot of fun. I thought going in that they'd feel a bit feature bloated, but it didn't end up feeling as bad as I thought it would be actually and I didn't particulary mind all the items and features he had in the end. So far this mod I would say this is my absolute favorite character mod I've played thus far (though I haven't played that many to be honest), but that doesn't mean it didn't have any problems of course. 

Some feedback:

*The character description for their abilities could be made more consistent with the others, like changing "Agile but frail" to "Is agile, but frail" as to be consistent with Maxwell's "Is dapper, but frail". A nitpick honestly but it did stick out to me a little bit.

*The cutting out sound when under cover, while a neat touch, felt kind of unpleasent on the ears after a while. In fact I had thought it was a bug with my sound cutting out for a little bit when playing them and it was only after messing around with ambushing for a little while I noticed exactly when it happened. In my opinion, I feel like this is a small touch that should probably be left on the cutting room floor, as running through a dense forest and having your sound cut out constantly doesn't come off easily as a feature.

*Warfarin's ambush range feels too low for the default dagger. I kept feeling like I should have been able to ambush someone from my distance but I couldn't cause it feels like you have to be almost hugging your oppenent to ambush them. Should definitely be increased along with cover size a little bit. EDIT: After playing them some more I'd say the cover size is fine actually, but ambush range should still be increased. Just a little bit though.

*The default keybind for Warfarin's dash being space bar doesn't really work. I kept trying to pick grass and twigs on day 1 but kept dashing instead. I shortly after changed it to "C" for ease of access and to circumvent the issue, though it does feel a bit cramped with this and probably a lot of the other keys, which does lead me to my next small gripe.

*The keybind for Warfarin's dash I think is a bad idea in general. Not only does it feel cramped and somewhat inconsistent to aim, but also feels "mod character-y" and doesn't really feel like something you'd see in a Klei-made character which Warfarin by the way does look like art-wise (seriously amazing work on the art by the way). Looking at Wheeler and how intuitive it feels to use her dodge and aim exactly where you want with right-click, I was really missing that during my time with Warfarin. If you could make Warfarin's dash able to be used with right-click I feel like it would make a world of difference playing them. Plus then their dash could probably be made controller compatible like Wheeler, which I'm not sure you have right now in this version.

*Small thing, (isn't a problem maybe but I'm gonna put it here anyway) but adding a decently high-ish positive priority to your mod if you don't already have one would be a good idea for the future in case, say, someone was looking into doing something similar to your "Warfarin can trade with pig bandits idea", and wanted to add compatibility for them in their mod so your feature didn't break and didn't want to give their mod a negative priority to do so cause their mod needs to have a low-ish positive priority of like "5" so it could be edited itself by other mods... and uh you know, other mods that might have similar features added by your AddPrefabPostInits that might want to add compatibility like that.

Other then all that anyway, I had a lot of fun playing Warfarin overall and am definitely looking forward to the possible DST release in the future. I did find a few bugs while playing them, but I don't have the time to report them all right now, I will look into doing so later however. I hope you take my feedback into consideration for an update in the future. Cheers!

Link to comment
Share on other sites

On 6/10/2019 at 5:33 AM, Portmanteau said:

Played a world for a while with Warfarin last night, and I gotta say they are definitely a lot of fun. I thought going in that they'd feel a bit feature bloated, but it didn't end up feeling as bad as I thought it would be actually and I didn't particulary mind all the items and features he had in the end. So far this mod I would say this is my absolute favorite character mod I've played thus far (though I haven't played that many to be honest), but that doesn't mean it didn't have any problems of course. 

Some feedback:

1*The character description for their abilities could be made more consistent with the others

2*The cutting out sound when under cover,

3*Warfarin's ambush range feels too low for the default dagger

4*The default keybind for Warfarin's dash being space bar doesn't really work. 

5*The keybind for Warfarin's dash I think is a bad idea in general.

6*Small thing, (isn't a problem maybe but I'm gonna put it here anyway) but adding a decently high-ish positive priority to your mod

1. That is actually inconsistant among all characters. Wigfrid, Willow, Wes, and Wagstaff are all vanilla characters that have no "is"s in their biographies and I just felt it looks a bit awkward. Idk, starting a sentence with "is" just looks off to me (no shade to Klei; I'm the weird one)

2. I could probably make a setting for that since personally I do like it, but I get it may be bothersome to some people. Or I could simply make it affect less since the meaning of it was to bring creature sounds to the forefront.

3. I'd sa it's aabout the range I'd wanna keep it. I wanted it to be just a touch out of regular striking range/being seen range so the player is still encouraged to use bait to lure enemies closer. Being able to just jump out and kill things willy-nilly felt too strong for me. If I were to increase it, it'd be a very minor amount since when I was testing it with a higher range, it felt pretty dang broken.

4/5. It should be C by default. If it ain't, that's news to me and I'll get to fixing it ASAP! I did want to make it function like Wheeler's - at first. But I found out the functionality for it is very much dependant on Hamlet being loaded. Sure I could find a way to do something similar but... I found the inability to dash when having your mouse over objects like a tree was a veery big drawback as well. Might still look into it but I can't guarantee any changes! That's not to say its out of the question completely though!

6. Thaaat was an oversight since with the way Warfarin used to be built, I had to have its priority so high because I had alotta scripts to try and make Warf more compatible with other mods. Now that the mod isn't -as- badly built with string and tape, I'll be able to lower that! And in the future, I'll hopefully have the mod far better optimized in general!

 

Thank you for the detailed critique!

Link to comment
Share on other sites

14 hours ago, Mr. Tiddles said:

1. That is actually inconsistant among all characters. Wigfrid, Willow, Wes, and Wagstaff are all vanilla characters that have no "is"s in their biographies and I just felt it looks a bit awkward. Idk, starting a sentence with "is" just looks off to me (no shade to Klei; I'm the weird one)

2. I could probably make a setting for that since personally I do like it, but I get it may be bothersome to some people. Or I could simply make it affect less since the meaning of it was to bring creature sounds to the forefront.

3. I'd sa it's aabout the range I'd wanna keep it. I wanted it to be just a touch out of regular striking range/being seen range so the player is still encouraged to use bait to lure enemies closer. Being able to just jump out and kill things willy-nilly felt too strong for me. If I were to increase it, it'd be a very minor amount since when I was testing it with a higher range, it felt pretty dang broken.

4/5. It should be C by default. If it ain't, that's news to me and I'll get to fixing it ASAP! I did want to make it function like Wheeler's - at first. But I found out the functionality for it is very much dependant on Hamlet being loaded. Sure I could find a way to do something similar but... I found the inability to dash when having your mouse over objects like a tree was a veery big drawback as well. Might still look into it but I can't guarantee any changes! That's not to say its out of the question completely though!

6. Thaaat was an oversight since with the way Warfarin used to be built, I had to have its priority so high because I had alotta scripts to try and make Warf more compatible with other mods. Now that the mod isn't -as- badly built with string and tape, I'll be able to lower that! And in the future, I'll hopefully have the mod far better optimized in general!

 

Thank you for the detailed critique!

1. The want for an "is" at the beginning of their perk description is like I said before a nitpick. I personally just think it looks neater that way myself, but I understand completely that others would think differently on the matter (and like you pointed out Klei seems to be inconsistent anyway with how descriptions are written anyway, so really just disregard my first point as relevant whatsoever).

3. Actually since writing that post my view on the ambush range has changed. I agree that its actually fine as is now, at the time I was just having trouble getting used to right-clicking quickly after dashing with "C" from a tree (by the way I have found that doing ambushes after a dash is so much easier with a right-click dash, from what I tested in a slightly edited version of your mod I made for personal experimentation that used Wheeler's dodge instead of Warfarin's dash, which I made just to quickly see what it would be like).

5. Even if right-click dashing was Hamlet only I'd still like to see it myself. Its just a so much more comfortable option, and it would be really nice for controller players as they pretty much completely miss out on one of Warfarin's main perks, so I think it would be better to have it even if its Hamlet only cause to allow controller support in some capacity is better then not having it at all (I know theres probably other ways of doing controller support, but doing it the same way Wheeler does is just the easiest way I can think of right now). I do understand your stance on wanting to keep it functionally same across all DLC, but I do feel the sake of easy working controller support is something to keep in mind.

As a final note, I did find quite a few bugs both by playing Warfarin and looking through your code. I have most of them on a sticky note on my computer so I'll probably get around to uploading all of them later once I get on it. One thing I do remember right now that is definitely not functioning as intended is Pig Bandit trading, which compared to my own take on Bandit trading I not so slyly hinted I have in a upcoming mod of mine can be abused and is a little buggy. I'll update this post later when I can with exact details on this and other bugs.

Your welcome and thank you for the response!

EDIT: Bug report time! Heres all that I found so far:

Spoiler

*1. The Swashy Hat doesn't work at all. This seems to be due to your warfarinsneak component using the sneaky tag itself as well and it removing it from the player when their not in cover breaks the hats function. Also the component using the sneaky tag in the first place is probably a bad idea, as the sneaky tag's functionality doesn't seem to exist outside of Hamlet compatibilty (after a quick "find in files" with Notepad++ in a directory other then DLC003/Hamlet I discovered this). So I guess this would mean Warfarin isn't sneaky at all outside of Hamlet..? Pretty sure at least. I'd recommend using the "notarget" tag instead as that would also solve the problem of creatures like pigmen running away from you in cover and city pigs greeting you in cover as well as this issue.

*2. The "Not Very Short Bow" has the option to "close" it, but it doesn't do anything. Small and harmless, but still a bug.

*3. Not really a bug, but I just feel like there should be a noise when you "come back into view" from using the smoke bomb. It just doens't look right to have an FX for it and no sound playing. I also think making the FX 25% larger would be a good idea, just so it looks like it surrounds Warfarin completely.

*4. Thievery tab still kind of appears for other characters. As in, it appears as a empty spot for them on their crafting tab list. This happened just because you have the Thievery tab set up in modmain when it should be set up in character prefab like Wickerbottom, Wagstaff, and Wormwood have their tabs. This way it won't show up whatsoever unless your Warfarin.

*5. All of Warfarin's items lack the "characterspecific" component, and due to this other characters can attain these items through world-hopping and other such means (like adventure mode throne swapping). This wouldn't be so much a problem if it wasn't for the fact that none of the items have examination quotes, and the bow is visually buggy for other characters due to them lacking the function Warfarin has which makes them perform the animation for it. Best to fix if adding these things for the other characters isn't planned. Lines needed for quick addition:

Spoiler

    inst:AddComponent("characterspecific")
    inst.components.characterspecific:SetOwner("warfarin")

*6. All Daggers can infinitely stunlock various creatures, among the most prominent creatures I tested, Terrorbeaks and Pigmen. This might be one of those little things you could probably pass of as a "feature", as I don't think its fixable without removing or greatly lowering all of the daggers faster swing speed, but its really up to you as to how you want to handle it.

*7. Water arrows cannot be crafted whatsoever in non-RoG compatiblity worlds (recipe shows up, but it doesn't give you anything upon crafting). In fact, it can't straight up exist at all outside of RoG compatibility worlds (can't even be spawned in), so you can't be playing SW or Hamlet compatible worlds if you want to have water arrows. Seems to just be because you put an IsDLCEnabled for only RoG specifically in the item's main function, which is blocking it from spawning outside of those worlds.

*8. Pig Bandits can be traded with infinitely if you keep giving them Ten-piece Oincs fast enough, which means endless easy bandit maps. Simply adding "inst.components.trader:Disable()" to your trade function will fix this problem.

*9. Pig Bandits are not removed from the world after trading, in fact they're just invisible until you reload. Then they are completely visible and functional again. Basically the reason for this is that the disappear state doesn't actually remove them from the world, it only hides them. You'll have to use a DoTaskInTime to cause a removal at a specified time to fix this (I recommend 0.80 of a second, that's what I use). I also recommend setting them to be invincible in the trade function too, that way they can't be knocked out of the animation for any possible reason whatsoever ("inst.components.health:SetInvincible(true)" for easy addition).

*10. Pig Bandits don't face the player when you trade with them. Just add this to your trade function and that should do it: "inst:FacePoint(giver.Transform:GetWorldPosition())"

 

Link to comment
Share on other sites

15 hours ago, Portmanteau said:

1. The want for an "is" at the beginning of their perk description is like I said before a nitpick. I personally just think it looks neater that way myself, but I understand completely that others would think differently on the matter (and like you pointed out Klei seems to be inconsistent anyway with how descriptions are written anyway, so really just disregard my first point as relevant whatsoever).

3. Actually since writing that post my view on the ambush range has changed. I agree that its actually fine as is now, at the time I was just having trouble getting used to right-clicking quickly after dashing with "C" from a tree (by the way I have found that doing ambushes after a dash is so much easier with a right-click dash, from what I tested in a slightly edited version of your mod I made for personal experimentation that used Wheeler's dodge instead of Warfarin's dash, which I made just to quickly see what it would be like).

5. Even if right-click dashing was Hamlet only I'd still like to see it myself. Its just a so much more comfortable option, and it would be really nice for controller players as they pretty much completely miss out on one of Warfarin's main perks, so I think it would be better to have it even if its Hamlet only cause to allow controller support in some capacity is better then not having it at all (I know theres probably other ways of doing controller support, but doing it the same way Wheeler does is just the easiest way I can think of right now). I do understand your stance on wanting to keep it functionally same across all DLC, but I do feel the sake of easy working controller support is something to keep in mind.

As a final note, I did find quite a few bugs both by playing Warfarin and looking through your code. I have most of them on a sticky note on my computer so I'll probably get around to uploading all of them later once I get on it. One thing I do remember right now that is definitely not functioning as intended is Pig Bandit trading, which compared to my own take on Bandit trading I not so slyly hinted I have in a upcoming mod of mine can be abused and is a little buggy. I'll update this post later when I can with exact details on this and other bugs.

Your welcome and thank you for the response!

EDIT: Bug report time! Heres all that I found so far:

  Hide contents

*1. The Swashy Hat doesn't work at all. This seems to be due to your warfarinsneak component using the sneaky tag itself as well and it removing it from the player when their not in cover breaks the hats function. Also the component using the sneaky tag in the first place is probably a bad idea, as the sneaky tag's functionality doesn't seem to exist outside of Hamlet compatibilty (after a quick "find in files" with Notepad++ in a directory other then DLC003/Hamlet I discovered this). So I guess this would mean Warfarin isn't sneaky at all outside of Hamlet..? Pretty sure at least. I'd recommend using the "notarget" tag instead as that would also solve the problem of creatures like pigmen running away from you in cover and city pigs greeting you in cover as well as this issue.

*2. The "Not Very Short Bow" has the option to "close" it, but it doesn't do anything. Small and harmless, but still a bug.

*3. Not really a bug, but I just feel like there should be a noise when you "come back into view" from using the smoke bomb. It just doens't look right to have an FX for it and no sound playing. I also think making the FX 25% larger would be a good idea, just so it looks like it surrounds Warfarin completely.

*4. Thievery tab still kind of appears for other characters. As in, it appears as a empty spot for them on their crafting tab list. This happened just because you have the Thievery tab set up in modmain when it should be set up in character prefab like Wickerbottom, Wagstaff, and Wormwood have their tabs. This way it won't show up whatsoever unless your Warfarin.

*5. All of Warfarin's items lack the "characterspecific" component, and due to this other characters can attain these items through world-hopping and other such means (like adventure mode throne swapping). This wouldn't be so much a problem if it wasn't for the fact that none of the items have examination quotes, and the bow is visually buggy for other characters due to them lacking the function Warfarin has which makes them perform the animation for it. Best to fix if adding these things for the other characters isn't planned. Lines needed for quick addition:

  Reveal hidden contents

    inst:AddComponent("characterspecific")
    inst.components.characterspecific:SetOwner("warfarin")

*6. All Daggers can infinitely stunlock various creatures, among the most prominent creatures I tested, Terrorbeaks and Pigmen. This might be one of those little things you could probably pass of as a "feature", as I don't think its fixable without removing or greatly lowering all of the daggers faster swing speed, but its really up to you as to how you want to handle it.

*7. Water arrows cannot be crafted whatsoever in non-RoG compatiblity worlds (recipe shows up, but it doesn't give you anything upon crafting). In fact, it can't straight up exist at all outside of RoG compatibility worlds (can't even be spawned in), so you can't be playing SW or Hamlet compatible worlds if you want to have water arrows. Seems to just be because you put an IsDLCEnabled for only RoG specifically in the item's main function, which is blocking it from spawning outside of those worlds.

*8. Pig Bandits can be traded with infinitely if you keep giving them Ten-piece Oincs fast enough, which means endless easy bandit maps. Simply adding "inst.components.trader:Disable()" to your trade function will fix this problem.

*9. Pig Bandits are not removed from the world after trading, in fact they're just invisible until you reload. Then they are completely visible and functional again. Basically the reason for this is that the disappear state doesn't actually remove them from the world, it only hides them. You'll have to use a DoTaskInTime to cause a removal at a specified time to fix this (I recommend 0.80 of a second, that's what I use). I also recommend setting them to be invincible in the trade function too, that way they can't be knocked out of the animation for any possible reason whatsoever ("inst.components.health:SetInvincible(true)" for easy addition).

*10. Pig Bandits don't face the player when you trade with them. Just add this to your trade function and that should do it: "inst:FacePoint(giver.Transform:GetWorldPosition())"

 

Woops! That hat is a pretty glaring oversight on my part. And the sneaky tag was just used so guards wouldn't be alerted by Warfarin pinking berries at dusk. It's the "shadow" tag that renders them untargettable. I opted to use shadow instead of notarget, since the bush hat and hidey hood use the notarget tag and I didn't want to complicate the component further, and so you couldn't use the hidey hood to ambush. Thinking of it now, though, setting the stealth to use notarget while the hidey hood uses shadow may be smarter since there's no logical balancing reasons why Warf shouldn't be able to ambush from a bush hat. Or an extra check to make sure Warf is actually in cover and not just standing about with the hood on.

I'll definitely keep looking into the dash, too! I have a few hunches on how I might be able to do it. If not, I could make the right mouse a special hamlet feature. I've also noticed Warf likes to zoom straight forward regardless of where the target actually is if you dash and them ambush. I think I've fixed that now though.

I agree on the smoke bomb, too. 

The shortbow... I noticed that issue too, and it's only a Hamlet issue. I'm not exactly sure how to fix it -- which usually means its an easy fix that's right under my nose and I'm just too thick to realize. And as for the arrow, another thing I didn't check because I assumed my 15 year old self wasn't THAT supid. ^.^; Same with character specificing the items. 

Getting on the fixes for the bandits on the way ASAP as well.

AAAAND FINALLY the stunlock. I didn't realize pigmen were a problem since for whatever reason, I've been able to stunlock them on regular players with regular weapons for the past few patches. Not quite sure how I'd go about an easy way of fixing that aside from changing the 'special' of daggers completely. Whether making them just deal less damage by default but get buffed (not absurdly of course) for a second or so after a perfectly timed dash.

 

The only bug I'm really stumped on is Warfarin's lines not taking effect until you quit and reload a game. I have a feeling the issue could be resolved if there were a way to delay postinits in the modmain but I'm still a tad too noobish to know if that's possible.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Please be aware that the content of this thread may be outdated and no longer applicable.

×
  • Create New...