Jump to content

[Release] Rpg Items


Heavenfall

Recommended Posts

I'm tinkering with a mod and I'd love to hear people's thoughts about it.

 

I started this mod because it annoyed me that every axe is identical in function to every other axe (and so on for every item). In RPG games you can usually find several different versions of the same weapon, which makes it fun to actually find three or four axes in a row.

 

So what I'd thought I'd do is introduce a similar system here, but more tuned to Don't Starve. My basic idea is that each found or crafted weapon or armor has a 20% chance to gain a magic property. The player can examine items to see what items have magic properties, but to see which one it is the player has to "identify" the item using a looking glass. Once identified, examining the item will reveal what effect it has. The item can be used before it is identified, and the effect is active even if not identified. Effects scale with the strength of the item (a hammer that sets target on fire won't make them burn long, but a nightmare sword will). Effects do not change the graphics used for the items.

 

Weapon effects:

Igniter - sometimes sets targets on fire

Freezer - sometimes freezes targets

Shrinker - sometimes shrinks targets

Lifesteal - sometimes steals health from targets

Teleporter - sometimes teleports targets a short distance away

Vorpal - sometimes instantly kills targets

Sharp - 10% more damage dealt

Blessed - 25% more damage dealt

Durable - Item lasts 50% longer

Terrifying - sometimes causes target to panic

 

Armor/Hat effects:

Insulation - helps keep warm in winter

Dapperness - provides sanity bonuses

Blessed - increases the damage reduction

Fireproof - decreases damage from fire

Durable - item lasts 50% longer

Strider - reduces hunger drain while worn

Teleporter - sometimes teleports the wearer away when hit

 

 

Some other ideas I was toying with as well:

1) Cursed items, ie negative effects. It might be interesting in combination with the need to make a looking glass to identify items.

2) Some kind of buildable magical forge (like the ruins forge) that increases the chance of getting a magical effect when crafting

3) A similar system for for monsters found in the world, so each monster would be customized in some direction (more health / fire immunity / extra speed / summons friends)

 

Anyway, I'd love to hear your thoughts on an item system like this. Also if anyone has any ideas for other types of effects I'm all ears.

 

This is actually a cool idea. 

 

I could help you with development if you want :grin:.

 

Also , you sure you want items to look the same regardless of magic enhancement ?

Link to comment
Share on other sites

When I saw a [WIP] by Heavenfall I knew it would be something interesting, and I was not disappointed ^^

I actually never thought about it but now that you mention it it seems boring to me that every axe is just an axe...
But then again why would my axe be magic when I craft it myself? MAybe I found a magic rock? But then again I could also identify the rock and then decide if I would prefer to create a spear or an axe from it. Do you see where I'm heading to  ; )

 

I just think that this would potentially increase the work to be done dramatically.

 

I also think that adding some negative effects to balance the whole thing would make sense since the need for an inspection-glass is really limited then. Using the weapon for a bit will make it obvious. Of course a Self-Vorpal is a no-go, but I'm sure you see that yourself  ^^

 

Anyway I think this will be a great mod, especially when a talented person like you works on it!

 

@RCatta Since when does Heavenfall need help?  : P

Link to comment
Share on other sites

I prefer to work on my own, but thanks for the offer.

 

Why is one axe different from another axe? That's just how RPGs work I guess. A slightly higher damage from some attribute and a good roll. I guess if you want a "Don't Starve" explanation then each individual reagent used is unique - it contains impurities and perhaps hidden features that you didn't know about.

Link to comment
Share on other sites

 

Also , you sure you want items to look the same regardless of magic enhancement ?

 

The reason I want to avoid that is that I can keep it completely modular if I don't add any graphics. If all I need in modmain.lua is

function HF_addrpgweapon(inst)    inst:AddComponent("rpgweapon")endAddPrefabPostInit("axe", HF_addrpgweapon)
then that is a huge success for me.
Link to comment
Share on other sites

 

The reason I want to avoid that is that I can keep it completely modular if I don't add any graphics. If all I need in modmain.lua is

 

 

Of course.And it should be still doable.

 

 

I'm assuming you'd want to add some sort of Identify function to your items , so you should be able to use:

 
   inst.AnimState:SetBank("identifieditembank")    inst.AnimState:SetBuild("identifieditembuild")    inst.AnimState:PlayAnimation("idle")
Link to comment
Share on other sites

@RCatta modular means I want it to work seamlessly with other mods as well. I load last, sort through prefabs and apply to weapon/armor items. I can't do that if I want graphics.

 

Also, really we're talking about 200+ new swap files and probably as many icons. I see this more as a fun script and not really worthy of spending that kind of time.

Link to comment
Share on other sites

Of course.And it should be still doable.

 

 

I'm assuming you'd want to add some sort of Identify function to your items , so you should be able to use:

 

   inst.AnimState:SetBank("identifieditembank")    inst.AnimState:SetBuild("identifieditembuild")    inst.AnimState:PlayAnimation("idle")

This would require making a custom build (the bank itself shouldn't change) for every magical item times the number of its possible effects...

If HF were to add a special effect to each magic property, it'd be better to create a prefab just for the effect, and then, assuming it were to only show when the item is equipped, he'd do (for weapons, for armor it'd be slightly different):

local fx_inst = SpawnPrefab("my_current_fx_prefab")fx_inst.persists = falselocal follower = fx_inst.entity:AddFollower()follower:FollowSymbol( GetPlayer().GUID, "swap_object", offset_x, offset_y, offset_z )
EDIT: Of course, it'd be better to use the entity equipping it instead of GetPlayer(), so that the system would be compatible with, say, giving magical hats to pigs.
Link to comment
Share on other sites

@simplex I hadn't thought of that! I'll look into it after the scripts are done.

(:

But if you're thinking about doing something like that, it'll be easier to group right from the start the items according to which animation symbol they override: swap_object, swap_hat or swap_body.

EDIT: Actually, I don't think you need to group them at all. You could just have the component peek at the equip slot defined in the equippable component. But anyway, this is cosmetic, worry about it (or not :razz:) once the functionality is there.

Link to comment
Share on other sites

Looking forward to it :)

 

Will be interesting to accidentally shrink spider queen or deerclops,

and as much laughs as setting forest on fires while chopping woods

 

Potential curse;

-sanity drain, quite vanilla

-hunger drain, harder to detect 

- add "monster" tag, so pigs suddenly become hostile

- food rot accelerated/ instant

Link to comment
Share on other sites

@RCatta modular means I want it to work seamlessly with other mods as well. I load last, sort through prefabs and apply to weapon/armor items. I can't do that if I want graphics.

 

Also, really we're talking about 200+ new swap files and probably as many icons. I see this more as a fun script and not really worthy of spending that kind of time.

So does this mean that this mod would be compatible with even custom weapons/armour?

 

I've been tossing around the idea of an "age of steel" mod for a while, now, which would ideally function as an extensible "framework" of sorts.

Introduce new minable metal resources, and encourage others to create additional items that make use of them. Obviously, that would include weapons and armour.

Furthermore, if it does run through all mod items... can you add an "exclusion" tag?

I ask mainly because I don't want to end up with a random buff on Link's unique items.

(He's quite strong enough as it is, without accidentally getting a shield that slows his hunger rate, or a boomerang that could instant-kill enemies before they even get near you.

 

I imagine all you'd need to do is add an "if not inst.HasTag:"ignoreRPGItems" then ..." while on our mods, we can just add "inst.AddTag:"IgnoreRPGItems" " or something.

 

 

As a suggestion, would it be possible for the items to be given a prefix identifying their kind?

It would be very helpful if the inventory shows "Blessed Axe" and "Sharp Axe" rather than two instances of "Axe" that aren't at all visually different.

 

Also, if I may be so bold as to suggest some more... RPG-sounding titles for the effects, especially in a refix-suitable context:

Weapon effects:

Flame - sometimes sets targets on fire

Frost - sometimes freezes targets

Minimising - sometimes shrinks targets

Vampiric - sometimes steals health from targets

Telelocating - sometimes teleports targets a short distance away

Vorpal - sometimes instantly kills targets

Razor - 10% more damage dealt

Blessed - 25% more damage dealt

Sturdy - Item lasts 50% longer

Terrifying - sometimes causes target to panic

 

Armor/Hat effects:

Cozy - helps keep warm in winter

Dapper - provides sanity bonuses

Blessed - increases the damage reduction

Fireproof - decreases damage from fire

Sturdy - item lasts 50% longer

Faster's - reduces hunger drain while worn

Telelocating - sometimes teleports the wearer away when hit

 

This sounds really fun and interesting, so I'm definitely looking forward to it!

Link to comment
Share on other sites

@TheDanaAddams

 

Yes, the goal would be that it integrates with other mods as well. Obviously there's going to be limits and I'm sure bugs will come up as a result, but I think if I write it right it should work.

 

Sure, we can do an ignore switch if you want to. I don't think making it a tag serves a purpose, you can just do inst.ignorerpgeffects = true in the prefab function.

 

Right now I have the explanation in the examine text, because the functions that govern what text appears when you hover over stuff is a LOT more complicated to hook in to.

 

The actual effect names are never displayed, I just display what the effect does at the moment. But if I can work it I will use your suggested names, thank you for those.

Link to comment
Share on other sites

Ah, if that works, that's fine - I just knew that using a tag wouldn't cause problems if the user wasn't using the RPG Items mod.

I don't really know much about all this code stuff - that was just the first thing I could think of that would maybe work. =3

 

Simplex was able to put together this bit of code that changed the displayed action on mouseover. I wanted the potions to read "drink" instead of "eat" - perhaps take a look at that, and see if you could do the same for names?

It seemed to accommodate wildcard characters...

I have no idea if it will be able to work for this purpose. Simplex's vast knowledge of the arcane arts of coding leaves me staring at a block of text that does a thing that I want it to do. I don't really know how it works. I just admire the glyphs and ominous glowing. ;P

Link to comment
Share on other sites

@TheDanaAddams I wasn't able to work the component for every item (custom and vanilla). The prefabs list isn't populated until after mods are loaded, and then it is too late to add to the prefab functions.

 

Instead of loading last, I will load first. Then if anyone wants to add the effects to an item in their own mod you can do

 

if GLOBAL.STRINGS.NAMES.MAGNIFYINGGLASS then

    AddPrefabPostInit("myweapon1", function(inst) inst:AddComponent("rpgweapon") end)

    AddPrefabPostInit("myweapon2", function(inst) inst:AddComponent("rpgweapon") end)

    AddPrefabPostInit("myarmor1", function(inst) inst:AddComponent("rpgarmor") end)

    AddPrefabPostInit("myhat1", function(inst) inst:AddComponent("rpgarmor") end)

end

 

and it will add the component if this mod is already loaded

 

I was able to alter the hover-text like you suggested, so now if you have an unidentified item it says

Axe (?)

and then it is changed to something like

Freezing Axe
when identified. As before, examining the item will give more details.
Link to comment
Share on other sites

Are the affixes only going to be prefixes? To me "Telelocating" sounds funny as a prefix and would be much better suited as a suffix. Perhaps if your lucky enough you could get a prefix and suffix? Such as a Vampiric Axe of Telelocating.

 

Oh, and here are some suggestions on RPG flavor gear modifications listed in the order that I believe the word has a more powerful connotation:

 

Prefixes:

 

Weapons:

Damage:

Glinting
Burnished
Polished
Honed
Gleaming
Annealed
Razor Sharp
Tempered
Flaring

 

Fire

Heated
Smoldering
Smoking
Burning
Flaming
Scorching
Incinerating
Blasting
Cremating

 

Ice

Frosted
Chilled
Icy
Frigid
Freezing
Frozen
Glaciated
Polar
Entombing

 

Lightning

Humming
Buzzing
Snapping
Crackling
Sparking
Arcing
Shocking
Discharging
Electrocuting

 

Armor/hats:

Damage Reduction

Lacquered
Reinforced
Layered
Studded
Lobstered
Ribbed
Buttressed
Fortified
Plated
Solid
Carapaced
Girded
Carapaced
Impregnable

 

Damage Reflection:

Thorny
Spiny
Barbed
Jagged

 

Life Increase or Regen

Healthy
Sanguine
Stalwart
Stout
Robust
Rotund
Virile
Athlete's
Fecund
Vigorous

 

Movement Speed

Runner's
Sprinter's
Stallion's
Gazelle's
Cheetah's

 

Suffixes:

 

Weapons:

Attack Speed
of Steadiness
of Accuracy
of Precision

Overall Better
of Skill
of Ease
of Mastery
of Renown
of Acclaim
of Fame
of Infamy
of Grandmastery
of Celebration

Occasional Critical Strike
of Stinging
of Piercing
of Puncturing
of Penetrating
of Incision
of Destruction
of Unmaking

Fire
of Embers
of Coals
of Cinders
of Flames
of Immolation
of Ashes

Ice
of Snow
of Sleet
of Ice
of Rime
of Floe
of Glaciation

Lighting
of Sparks
of Static
of Electricity
of Voltage
of Discharge
of Arcing

Staff Effectiveness
of Calm
of Concentration
of Focus
of Study
of Clear Mind

 

Universal:

Light
of Shining
of Light
of Radiance

Quantity of Item Drops
of Collecting

Quality of Item Drops
of Plunder

 

Some similar were suggested I believe, but I figured I'd throw 'em in anyway.

Link to comment
Share on other sites

I'm going to settle for 1 prefix from the start, because I don't want a 1 in 100 chance to get something extremely op from the start. Maybe a suffix would be something that could come from the forge that may or may not show up at a later time.

 

I'm also going to use a non-random naming system, so a freezing axe has the same effect as a freezing shovel. I want to do as many unique effects as possible, so it's important that they can be identified by their name immediately.

Link to comment
Share on other sites

I don't know about having double-effect items... I mean, especially if you get something like a "Frost Axe of Flame" - what happens then? xD

 

I'm definitely in favour of the non-random names - being able to identify the feature by prefix is an important usability feature, in my opinion.

 

(And as a rebuttal, "Telelocating" to me sounds like an odd suffix. - If it is decided to go that route, what would make more sense to me grammatically would be "... of Telelocation." But I'm nitpicking. xD)

Link to comment
Share on other sites

I'm going to settle for 1 prefix from the start, because I don't want a 1 in 100 chance to get something extremely op from the start. Maybe a suffix would be something that could come from the forge that may or may not show up at a later time.

 

I'm also going to use a non-random naming system, so a freezing axe has the same effect as a freezing shovel. I want to do as many unique effects as possible, so it's important that they can be identified by their name immediately.

 

Perhaps I should have been more clear. I did not intend each word to be associated to different things, just that as you got further in each list the effects would become more powerful.

To be more clear I will use the Ice prefixes as an example.

 

Frosted - Would have a low chance to freeze enemies with any weapon.

Chilled - Would have a medium chance to freeze enemies with any weapon.

Icy - Would have a high chance to freeze enemies with any weapon.

Frigid - Would always freeze enemies with any weapon.

Freezing - Would always freeze enemies and would freeze them for a little longer than usual with any weapon.

Frozen - Would always freeze enemies and would freeze them for a while with any weapon.

Glaciated - Would always freeze enemies and would freeze them for a long time with any weapon.

Polar - Would always freeze enemies and would freeze them for a very long time with any weapon.

Entombing - Would permanently freeze enemies with any weapon.

 

(Obviously much lower chance to roll each as you go up to entombing.)

 

That list came from a note.. I guess I had... to implement something similar to the enchanting table from minecraft for the don't starve world. Was actually going to be a blood magic table.

 

I don't know about having double-effect items... I mean, especially if you get something like a "Frost Axe of Flame" - what happens then? xD

 

I'm definitely in favour of the non-random names - being able to identify the feature by prefix is an important usability feature, in my opinion.

 

(And as a rebuttal, "Telelocating" to me sounds like an odd suffix. - If it is decided to go that route, what would make more sense to me grammatically would be "... of Telelocation." But I'm nitpicking. xD)

 

A "Frost axe of Flame" would be a bad roll, and that'll happen if you add effects like this to the game. A Frost Ice staff is just as bad of a roll. Don't starve isn't supposed to be easy! But to explain, I will assume that the frost prefix would freeze an enemy and the flame suffix will light them on fire for an easy example. If both efffects were to trigger simultaneously then they wuold freeze and catch on fire thus defrosting them. So bad roll, but effects still possible.

 

Link to comment
Share on other sites

Indeed a flaming axe of frost would be useless for the reason you said - flaming includes thawing frozen enemies, and frost would include extinguishing burning enemies.

 

I'm linking the strength of the enchantment to the weapon instead. So a flaming axe might have 2% chance to set someone on fire, while a tentacle spike would have 6%. This way we can have variable effects but the player can rest assured that "more is always better".

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...