From d65ec2d5e8a45cd5683204e7437ceb59285c55f7 Mon Sep 17 00:00:00 2001
From: Henri215 <77684085+Henri215@users.noreply.github.com>
Date: Sat, 22 Apr 2023 04:18:08 -0300
Subject: [PATCH] Tweaks to greed ruin and die of fate (#20737)
* Tweaks to greed ruin and die of fate
* Delay between effects
* moved and updaated traitor items
* More tweaks to traitor item list
* Update code/game/objects/items/weapons/dice.dm
Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
* Sirryan review
* Lets decrease the money even more
* experimental KA instead of alien pistol
* emp dmg for machines when interacting
* brainloss
* Code improvment
* forcewall removal
* Turning into a list
---------
Co-authored-by: Ryan <80364400+Sirryan2002@users.noreply.github.com>
---
.../LavaRuins/lavaland_surface_greed.dmm | 14 +----
code/game/objects/items/weapons/dice.dm | 55 +++++++++++++------
.../ruins/lavalandruin_code/sin_ruins.dm | 17 ++++--
3 files changed, 53 insertions(+), 33 deletions(-)
diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
index e1082c88664..14ef5982d63 100644
--- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
+++ b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm
@@ -70,11 +70,6 @@
"m" = (
/turf/simulated/floor/engine/cult,
/area/ruin/powered/greed)
-"n" = (
-/obj/structure/table/wood/poker,
-/obj/item/stack/spacecash/c1000,
-/turf/simulated/floor/engine/cult,
-/area/ruin/powered/greed)
"o" = (
/obj/item/storage/bag/money,
/turf/simulated/floor/engine/cult,
@@ -86,7 +81,6 @@
/area/ruin/powered/greed)
"q" = (
/obj/structure/table/wood/poker,
-/obj/item/stack/spacecash/c20,
/obj/item/stack/spacecash/c50,
/obj/machinery/light/small{
brightness_range = 3;
@@ -96,21 +90,17 @@
/area/ruin/powered/greed)
"r" = (
/obj/structure/table/wood/poker,
-/obj/item/stack/spacecash/c500,
/obj/item/stack/spacecash/c100,
-/obj/item/stack/spacecash/c1000,
/turf/simulated/floor/engine/cult,
/area/ruin/powered/greed)
"s" = (
/obj/structure/table/wood/poker,
-/obj/item/stack/spacecash/c200,
+/obj/item/stack/spacecash/c50,
/turf/simulated/floor/engine/cult,
/area/ruin/powered/greed)
"u" = (
/obj/structure/table/wood/poker,
-/obj/item/stack/spacecash/c500,
/obj/item/stack/spacecash/c100,
-/obj/item/stack/spacecash/c1000,
/obj/machinery/light/small{
dir = 4
},
@@ -277,7 +267,7 @@ c
c
W
W
-n
+p
q
s
W
diff --git a/code/game/objects/items/weapons/dice.dm b/code/game/objects/items/weapons/dice.dm
index 4481434376e..4fb3f340f31 100644
--- a/code/game/objects/items/weapons/dice.dm
+++ b/code/game/objects/items/weapons/dice.dm
@@ -182,7 +182,7 @@
//Swarm of creatures
T.visible_message("A swarm of creatures surround [user]!")
for(var/direction in GLOB.alldirs)
- new /mob/living/simple_animal/hostile/netherworld(get_step(get_turf(user),direction))
+ new /mob/living/simple_animal/hostile/netherworld(get_step(get_turf(user), direction))
if(4)
//Destroy Equipment
T.visible_message("Everything [user] is holding and wearing disappears!")
@@ -210,7 +210,7 @@
if(8)
//Fueltank Explosion
T.visible_message("An explosion bursts into existence around [user]!")
- explosion(get_turf(user),-1,0,2, flame_range = 2)
+ explosion(get_turf(user), -1, 0, 2, flame_range = 2)
if(9)
//Cold
var/datum/disease/D = new /datum/disease/cold()
@@ -234,23 +234,46 @@
T.visible_message("Mad dosh shoots out of [src]!")
var/turf/Start = get_turf(src)
for(var/direction in GLOB.alldirs)
- var/turf/dirturf = get_step(Start,direction)
+ var/turf/dirturf = get_step(Start, direction)
if(prob(50))
new /obj/item/stack/spacecash/c1000(dirturf)
else
var/obj/item/storage/bag/money/M = new(dirturf)
- for(var/i in 1 to rand(5,50))
+ for(var/i in 1 to rand(5, 50))
new /obj/item/coin/gold(M)
if(14)
- //Free Gun
- T.visible_message("An impressive gun appears!")
+ //Tator Item
+ var/list/traitor_items = list(/obj/item/chameleon,
+ /obj/item/chameleon_counterfeiter,
+ /obj/item/clothing/shoes/chameleon/noslip,
+ /obj/item/pinpointer/advpinpointer,
+ /obj/item/storage/box/syndie_kit/bonerepair,
+ /obj/item/storage/backpack/duffel/syndie/med/surgery,
+ /obj/item/storage/toolbox/syndicate,
+ /obj/item/storage/backpack/clown/syndie,
+ /obj/item/storage/backpack/satchel_flat,
+ /obj/item/camera_bug,
+ /obj/item/storage/belt/military/traitor,
+ /obj/item/clothing/glasses/chameleon/thermal,
+ /obj/item/borg/upgrade/modkit/indoors,
+ /obj/item/storage/box/syndie_kit/chameleon,
+ /obj/item/storage/box/syndie_kit/hardsuit,
+ /obj/item/implanter/storage,
+ /obj/item/toy/syndicateballoon)
+ var/selected_item = pick(traitor_items)
+ T.visible_message("A suspicious item appears!")
+ new selected_item(drop_location())
create_smoke(2)
- new /obj/item/gun/projectile/revolver/mateba(drop_location())
if(15)
//Random One-use spellbook
+ var/list/oneuse_spellbook = list(/obj/item/spellbook/oneuse/smoke,
+ /obj/item/spellbook/oneuse/blind,
+ /obj/item/spellbook/oneuse/knock,
+ /obj/item/spellbook/oneuse/summonitem)
+ var/selected_spellbook = pick(oneuse_spellbook)
T.visible_message("A magical looking book drops to the floor!")
create_smoke(2)
- new /obj/item/spellbook/oneuse/random(drop_location())
+ new selected_spellbook(drop_location())
if(16)
//Servant & Servant Summon
T.visible_message("A Dice Servant appears in a cloud of smoke!")
@@ -276,12 +299,11 @@
var/obj/effect/proc_holder/spell/summonmob/S = new
S.target_mob = H
user.mind.AddSpell(S)
-
if(17)
- //Tator Kit
- T.visible_message("A suspicious box appears!")
- new /obj/item/storage/box/syndie_kit/bundle(drop_location())
+ //Free Gun
+ T.visible_message("An impressive gun appears!")
create_smoke(2)
+ new /obj/item/gun/energy/kinetic_accelerator/experimental(drop_location())
if(18)
//Captain ID
T.visible_message("A golden identification card appears!")
@@ -292,11 +314,12 @@
T.visible_message("[user] looks very robust!")
user.physiology.brute_mod *= 0.5
user.physiology.burn_mod *= 0.5
-
if(20)
- //Free wizard!
- T.visible_message("Magic flows out of [src] and into [user]!")
- user.mind.make_Wizard()
+ //Three free good dice rolls!
+ T.visible_message("Critical number! [src] is rolling three times all by himself!")
+ addtimer(CALLBACK(src, PROC_REF(effect), user, rand(1, 9) + 10), 1 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(effect), user, rand(1, 9) + 10), 2 SECONDS)
+ addtimer(CALLBACK(src, PROC_REF(effect), user, rand(1, 9) + 10), 3 SECONDS)
/obj/item/dice/d100
name = "d100"
diff --git a/code/modules/ruins/lavalandruin_code/sin_ruins.dm b/code/modules/ruins/lavalandruin_code/sin_ruins.dm
index 4c75edbc90f..b018f29c72e 100644
--- a/code/modules/ruins/lavalandruin_code/sin_ruins.dm
+++ b/code/modules/ruins/lavalandruin_code/sin_ruins.dm
@@ -1,6 +1,8 @@
//These objects are used in the cardinal sin-themed ruins (i.e. Gluttony, Pride...)
// Greed
+#define WIN_PROB 5
+
/obj/structure/cursed_slot_machine //Greed's slot machine: Used in the Greed ruin. Deals clone damage on each use, with a successful use giving a d20 of fate.
name = "greed's slot machine"
desc = "High stakes, high rewards."
@@ -8,7 +10,6 @@
icon_state = "slots-off"
anchored = TRUE
density = TRUE
- var/win_prob = 5
/obj/structure/cursed_slot_machine/attack_hand(mob/user)
interact(user)
@@ -21,7 +22,11 @@
return
in_use = TRUE
- user.adjustCloneLoss(20)
+ if(!ismachineperson(user))
+ user.adjustCloneLoss(20)
+ else
+ to_chat(user, "Your brain is sparking!")
+ user.adjustBrainLoss(15)
if(user.stat)
to_chat(user, "No... just one more try...")
user.gib()
@@ -29,14 +34,14 @@
user.visible_message("[user] pulls [src]'s lever with a glint in [user.p_their()] eyes!", "You feel a draining as you pull the lever, but you \
know it'll be worth it.")
icon_state = "slots-on"
- playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50, 0)
+ playsound(src, 'sound/lavaland/cursed_slot_machine.ogg', 50)
addtimer(CALLBACK(src, PROC_REF(determine_victor), user), 50)
/obj/structure/cursed_slot_machine/proc/determine_victor(mob/living/user)
icon_state = "slots-off"
in_use = FALSE
- if(prob(win_prob))
- playsound(src, 'sound/lavaland/cursed_slot_machine_jackpot.ogg', 50, 0)
+ if(prob(WIN_PROB))
+ playsound(src, 'sound/lavaland/cursed_slot_machine_jackpot.ogg', 50)
new/obj/structure/cursed_money(get_turf(src))
if(user)
to_chat(user, "You've hit jackpot. Laughter echoes around you as your reward appears in the machine's place.")
@@ -45,6 +50,8 @@
if(user)
to_chat(user, "Fucking machine! Must be rigged. Still... one more try couldn't hurt, right?")
+#undef WIN_PROB
+
/obj/structure/cursed_money
name = "bag of money"
desc = "RICH! YES! YOU KNEW IT WAS WORTH IT! YOU'RE RICH! RICH! RICH!"