mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
[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:
co-authored by
Watermelon914
Watermelon914
parent
62ab5e77f4
commit
72b1a979ff
@@ -92,6 +92,16 @@
|
||||
QDEL_NULL(suppressed)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
fire_delay = modify_fantasy_variable("fire_delay", fire_delay, -bonus, 0)
|
||||
projectile_damage_multiplier = modify_fantasy_variable("projectile_damage_multiplier", projectile_damage_multiplier, bonus/10, 0.1)
|
||||
|
||||
/obj/item/gun/remove_fantasy_bonuses(bonus)
|
||||
fire_delay = reset_fantasy_variable("fire_delay", fire_delay)
|
||||
projectile_damage_multiplier = reset_fantasy_variable("projectile_damage_multiplier", projectile_damage_multiplier)
|
||||
return ..()
|
||||
|
||||
/// Handles adding [the seclite mount component][/datum/component/seclite_attachable] to the gun.
|
||||
/// If the gun shouldn't have a seclight mount, override this with a return.
|
||||
/// Or, if a child of a gun with a seclite mount has slightly different behavior or icons, extend this.
|
||||
|
||||
@@ -74,6 +74,18 @@
|
||||
|
||||
var/mob/listeningTo
|
||||
|
||||
/obj/item/gun/energy/beam_rifle/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
delay = modify_fantasy_variable("delay", delay, -bonus * 2)
|
||||
aiming_time = modify_fantasy_variable("aiming_time", aiming_time, -bonus * 2)
|
||||
recoil = modify_fantasy_variable("aiming_time", aiming_time, round(-bonus / 2))
|
||||
|
||||
/obj/item/gun/energy/beam_rifle/remove_fantasy_bonuses(bonus)
|
||||
delay = reset_fantasy_variable("delay", delay)
|
||||
aiming_time = reset_fantasy_variable("aiming_time", aiming_time)
|
||||
recoil = reset_fantasy_variable("recoil", recoil)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/energy/beam_rifle/debug
|
||||
delay = 0
|
||||
cell_type = /obj/item/stock_parts/cell/infinite
|
||||
|
||||
@@ -16,6 +16,14 @@
|
||||
var/list/modkits = list()
|
||||
gun_flags = NOT_A_REAL_GUN
|
||||
|
||||
/obj/item/gun/energy/recharge/kinetic_accelerator/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
max_mod_capacity = modify_fantasy_variable("max_mod_capacity", max_mod_capacity, bonus * 10)
|
||||
|
||||
/obj/item/gun/energy/recharge/kinetic_accelerator/remove_fantasy_bonuses(bonus)
|
||||
max_mod_capacity = reset_fantasy_variable("max_mod_capacity", max_mod_capacity)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/energy/recharge/kinetic_accelerator/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
|
||||
@@ -18,6 +18,14 @@
|
||||
/// Do we recharge slower with more of our type?
|
||||
var/unique_frequency = FALSE
|
||||
|
||||
/obj/item/gun/energy/recharge/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
recharge_time = modify_fantasy_variable("recharge_time", recharge_time, -bonus, minimum = 0.2 SECONDS)
|
||||
|
||||
/obj/item/gun/energy/recharge/remove_fantasy_bonuses(bonus)
|
||||
recharge_time = reset_fantasy_variable("recharge_time", recharge_time)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/energy/recharge/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!holds_charge)
|
||||
|
||||
@@ -29,6 +29,17 @@
|
||||
. = ..()
|
||||
RegisterSignal(src, COMSIG_ITEM_MAGICALLY_CHARGED, PROC_REF(on_magic_charge))
|
||||
|
||||
/obj/item/gun/magic/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
recharge_rate = modify_fantasy_variable("recharge_rate", recharge_rate, -bonus, minimum = 1)
|
||||
max_charges = modify_fantasy_variable("max_charges", max_charges, bonus)
|
||||
charges = modify_fantasy_variable("charges", charges, bonus)
|
||||
|
||||
/obj/item/gun/magic/remove_fantasy_bonuses(bonus)
|
||||
recharge_rate = reset_fantasy_variable("recharge_rate", recharge_rate)
|
||||
max_charges = reset_fantasy_variable("max_charges", max_charges)
|
||||
charges = reset_fantasy_variable("charges", charges)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/magic/fire_sounds()
|
||||
var/frequency_to_use = sin((90/max_charges) * charges)
|
||||
|
||||
@@ -17,6 +17,17 @@
|
||||
var/max_syringes = 4
|
||||
var/last_synth = 0
|
||||
|
||||
/obj/item/gun/chem/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
max_syringes = modify_fantasy_variable("max_syringes", max_syringes, bonus, minimum = 1)
|
||||
time_per_syringe = modify_fantasy_variable("time_per_syringe", time_per_syringe, -bonus * 10)
|
||||
|
||||
/obj/item/gun/chem/remove_fantasy_bonuses(bonus)
|
||||
max_syringes = reset_fantasy_variable("max_syringes", max_syringes)
|
||||
time_per_syringe = reset_fantasy_variable("time_per_syringe", time_per_syringe)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/gun/chem/Initialize(mapload)
|
||||
. = ..()
|
||||
chambered = new /obj/item/ammo_casing/chemgun(src)
|
||||
|
||||
@@ -16,6 +16,14 @@
|
||||
. = ..()
|
||||
. += "[grenades.len] / [max_grenades] grenades loaded."
|
||||
|
||||
/obj/item/gun/grenadelauncher/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
max_grenades = modify_fantasy_variable("max_syringes", max_grenades, bonus, minimum = 1)
|
||||
|
||||
/obj/item/gun/grenadelauncher/remove_fantasy_bonuses(bonus)
|
||||
max_grenades = reset_fantasy_variable("max_syringes", max_grenades)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/grenadelauncher/attackby(obj/item/I, mob/user, params)
|
||||
|
||||
if(istype(I, /obj/item/grenade/c4))
|
||||
|
||||
@@ -30,6 +30,14 @@
|
||||
chambered = new /obj/item/ammo_casing/syringegun(src)
|
||||
recharge_newshot()
|
||||
|
||||
/obj/item/gun/syringe/apply_fantasy_bonuses(bonus)
|
||||
. = ..()
|
||||
max_syringes = modify_fantasy_variable("max_syringes", max_syringes, bonus, minimum = 1)
|
||||
|
||||
/obj/item/gun/syringe/remove_fantasy_bonuses(bonus)
|
||||
max_syringes = reset_fantasy_variable("max_syringes", max_syringes)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/syringe/handle_atom_del(atom/A)
|
||||
. = ..()
|
||||
if(A in syringes)
|
||||
|
||||
Reference in New Issue
Block a user