mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 04:57:57 +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:
@@ -0,0 +1,60 @@
|
||||
|
||||
/particles/unusual_effect
|
||||
icon = 'icons/effects/particles/pollen.dmi'
|
||||
icon_state = "pollen"
|
||||
width = 100
|
||||
height = 100
|
||||
count = 1000
|
||||
spawning = 4
|
||||
lifespan = 0.7 SECONDS
|
||||
fade = 1 SECONDS
|
||||
grow = -0.01
|
||||
velocity = list(0, 0)
|
||||
position = generator(GEN_CIRCLE, 0, 16, NORMAL_RAND)
|
||||
drift = generator(GEN_VECTOR, list(0, -0.2), list(0, 0.2))
|
||||
gravity = list(0, 0.95)
|
||||
scale = generator(GEN_VECTOR, list(0.3, 0.3), list(1,1), NORMAL_RAND)
|
||||
rotation = 30
|
||||
spin = generator(GEN_NUM, -20, 20)
|
||||
|
||||
/// Creates a cool looking effect on the movable.
|
||||
/// In the future, this could be expanded to have more interesting particles and effects.
|
||||
/datum/component/unusual_effect
|
||||
dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
|
||||
var/obj/effect/abstract/particle_holder/special_effects
|
||||
|
||||
var/color
|
||||
|
||||
COOLDOWN_DECLARE(glow_cooldown)
|
||||
|
||||
/datum/component/unusual_effect/Initialize(color, include_particles = FALSE)
|
||||
var/atom/movable/parent_movable = parent
|
||||
if (!istype(parent_movable))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
src.color = color
|
||||
parent_movable.add_filter("unusual_effect", 2, list("type" = "outline", "color" = color, "size" = 2))
|
||||
if(include_particles)
|
||||
special_effects = new(parent_movable, /particles/unusual_effect)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/datum/component/unusual_effect/Destroy(force, silent)
|
||||
var/atom/movable/parent_movable = parent
|
||||
if (istype(parent_movable))
|
||||
parent_movable.remove_filter("unusual_effect")
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/datum/component/unusual_effect/process(seconds_per_tick)
|
||||
var/atom/movable/parent_movable = parent
|
||||
var/filter = parent_movable.get_filter("unusual_effect")
|
||||
if (!filter)
|
||||
parent_movable.add_filter("unusual_effect", 2, list("type" = "outline", "color" = color, "size" = 2))
|
||||
return
|
||||
if(!COOLDOWN_FINISHED(src, glow_cooldown))
|
||||
return
|
||||
|
||||
animate(filter, alpha = 110, time = 1.5 SECONDS, loop = -1)
|
||||
animate(alpha = 40, time = 2.5 SECONDS)
|
||||
COOLDOWN_START(src, glow_cooldown, 4 SECONDS)
|
||||
Reference in New Issue
Block a user