[MIRROR] Improves the RPG loot wizard event. [MDB IGNORE] (#22800)

* Improves the RPG loot wizard event. (#77218)

## About The Pull Request
As the title says. Adds a bunch more stat changes to various different
items and a somewhat simple way of modifying them whilst minimizing
side-effects as much as possible.
Added a new negative curse of polymorph suffix that can randomly
polymorph you once you pick up the item.
Curse of hunger items won't start on items that are not on a turf.
Curse of polymorph will only activate when equipped.

Bodyparts, two-handed melees, bags, guns and grenades, to name a few,
have a bunch of type-specific stat changes depending on their quality.

Some items won't gain fantasy suffixes during the RPG loot event, like
stacks, chairs and paper, to make gamifying the stats a bit harder.
I'm sure there'll still be other ways to game the event, but it's not
that big of a deal since these are the easiest ways to game it.
High level items also have a cool unusual effect aura

## Why It's Good For The Game
Makes the RPG item event cooler. Right now, it's a bit lame since
everything only gains force value and wound bonus on attack. This makes
the statistic increases more type-based and make it interesting to use

It's okay for some items to be powerful since this is a wizard event and
a very impactful one too. By making the curse of hunger items not spawn
on people, it'll also make it a less painful event too.

## Changelog
🆑
add: Expanded the RPG loot wizard event by giving various different
items their own statistic boost.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>

* Improves the RPG loot wizard event.

---------

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Watermelon914 <3052169-Watermelon914@ users.noreply.gitlab.com>
This commit is contained in:
SkyratBot
2023-07-31 20:02:03 -04:00
committed by GitHub
co-authored by Watermelon914 Watermelon914
parent 62ab5e77f4
commit 72b1a979ff
53 changed files with 681 additions and 54 deletions
@@ -10,6 +10,28 @@
/// What storage type to use for this item
var/datum/storage/storage_type = /datum/storage
/obj/item/storage/apply_fantasy_bonuses(bonus)
. = ..()
atom_storage.max_slots = modify_fantasy_variable("max_slots", atom_storage.max_slots, round(bonus/2))
atom_storage.max_total_storage = modify_fantasy_variable("max_total_storage", atom_storage.max_total_storage, round(bonus/2))
LAZYSET(fantasy_modifications, "max_specific_storage", atom_storage.max_specific_storage)
if(bonus >= 15)
atom_storage.max_specific_storage = max(WEIGHT_CLASS_HUGE, atom_storage.max_specific_storage)
else if(bonus >= 10)
atom_storage.max_specific_storage = max(WEIGHT_CLASS_BULKY, atom_storage.max_specific_storage)
else if(bonus <= -10)
atom_storage.max_specific_storage = WEIGHT_CLASS_SMALL
else if(bonus <= -15)
atom_storage.max_specific_storage = WEIGHT_CLASS_TINY
/obj/item/storage/remove_fantasy_bonuses(bonus)
atom_storage.max_slots = reset_fantasy_variable("max_slots", atom_storage.max_slots)
atom_storage.max_total_storage = reset_fantasy_variable("max_total_storage", atom_storage.max_total_storage)
var/previous_max_storage = LAZYACCESS(fantasy_modifications, "max_specific_storage")
if(previous_max_storage)
atom_storage.max_specific_storage = previous_max_storage
return ..()
/obj/item/storage/Initialize(mapload)
. = ..()