Files
Paradise/code/game/gamemodes/wizard/rightandwrong.dm
Qwertytoforty af5d187014 Adds magic tarot cards [SERIOUS DO NOT CLOSE AFTER AFD] (#24933)
* starts it

* Update magic_tarot.dm

* MORE PROGRESS

* So many thanks to Cloudbucket, for sprites

* The Work, the Art, continues.

* more changes

* pushes the Work foward. All cards done.

* and more thanks github

* adds to BSH

* tochat

* Finishes QWERTYTODO. Magic key. World smoke

* Isaac and his mother lived alone in a small house on a hill.  Isaac kept to himself, drawing pictures and playing with his toys as his mom watched Christian broadcasts on the television.  Life was simple, and they were both happy. That was, until the day Isaac’s mom heard a voice from above.  “Your son has become corrupted by sin. He needs to be saved.”  “I will do my best to save him, my Lord,” Isaac’s mother replied, rushing into Isaac’s room, removing all that was evil from his life.  Again the voice called to her, "Isaac’s soul is still corrupt. He needs to be cut off from all that is evil in this world and confess his sins."  “I will follow your instructions, Lord. I have faith in thee,” Isaac’s mother replied, as she locked Isaac in his room, away from the evils of the world.  One last time, Isaac’s mom heard the voice of God calling to her.  “You've done as I've asked, but I still question your devotion to me. To prove your faith, I will ask one more thing of you."  "Yes Lord, anything!” Isaac’s mother begged.  "To prove your love and devotion, I require a sacrifice. Your son, Isaac, will be this sacrifice. Go into his room and end his life, as an offering to me to prove you love me above all else."  "Yes Lord", she replied, grabbing a butcher’s knife from the kitchen.  Isaac, watching through a crack in his door, trembled in fear.  Scrambling around his room to find a hiding place, he noticed a trap door to the basement hidden under his rug.  Without hesitation, he flung open the hatch, just as his mother burst through his door, and threw himself down into the unknown depths below.

* nanny bag it before I forget

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* returns early

* Apply suggestions from code review

Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>

* RE-RE-RE-REVIEW

* Apply suggestions from code review

Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: synthtee <127706731+SynthTwo@users.noreply.github.com>

* requested changes and such

* duh

* Apply suggestions from code review

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* returns early

* Update code/datums/status_effects/buffs.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>

* new hrefs here to troll CI :trollface:

* Update code/game/gamemodes/wizard/magic_tarot.dm

Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>

---------

Signed-off-by: Qwertytoforty <52090703+Qwertytoforty@users.noreply.github.com>
Co-authored-by: DGamerL <108773801+DGamerL@users.noreply.github.com>
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com>
Co-authored-by: synthtee <127706731+SynthTwo@users.noreply.github.com>
2024-04-24 23:10:46 +00:00

187 lines
6.7 KiB
Plaintext

//In this file: Summon Magic/Summon Guns/Summon Events
// 1 in 50 chance of getting something really special.
#define SPECIALIST_MAGIC_PROB 2
GLOBAL_LIST_INIT(summoned_guns, list(
/obj/item/gun/energy/disabler,
/obj/item/gun/energy/gun,
/obj/item/gun/energy/gun/advtaser,
/obj/item/gun/energy/laser,
/obj/item/gun/projectile/revolver,
/obj/item/gun/energy/detective,
/obj/item/gun/projectile/automatic/pistol/deagle/camo,
/obj/item/gun/projectile/automatic/gyropistol,
/obj/item/gun/energy/pulse,
/obj/item/gun/projectile/automatic/pistol,
/obj/item/gun/projectile/revolver/doublebarrel,
/obj/item/gun/projectile/shotgun,
/obj/item/gun/projectile/shotgun/automatic/combat,
/obj/item/gun/projectile/automatic/ar,
/obj/item/gun/projectile/revolver/mateba,
/obj/item/gun/projectile/shotgun/boltaction,
/obj/item/gun/projectile/automatic/mini_uzi,
/obj/item/gun/energy/lasercannon,
/obj/item/gun/energy/kinetic_accelerator/crossbow/large,
/obj/item/gun/energy/gun/nuclear,
/obj/item/gun/projectile/automatic/proto,
/obj/item/gun/projectile/automatic/c20r,
/obj/item/gun/projectile/automatic/l6_saw,
/obj/item/gun/projectile/automatic/m90,
/obj/item/gun/energy/alien,
/obj/item/gun/energy/pulse/carbine,
/obj/item/gun/energy/decloner,
/obj/item/gun/energy/mindflayer,
/obj/item/gun/energy/kinetic_accelerator,
/obj/item/gun/energy/plasmacutter/adv,
/obj/item/gun/energy/wormhole_projector,
/obj/item/gun/projectile/automatic/wt550,
/obj/item/gun/projectile/automatic/shotgun/bulldog,
/obj/item/gun/projectile/revolver/grenadelauncher,
/obj/item/gun/projectile/revolver/golden,
/obj/item/gun/projectile/automatic/sniper_rifle,
/obj/item/gun/medbeam,
/obj/item/gun/energy/laser/scatter,
/obj/item/gun/projectile/automatic/c20r/toy/riot,
/obj/item/gun/projectile/shotgun/automatic/dual_tube,
/obj/item/gun/energy/kinetic_accelerator/experimental, // even with atmos, this thing can get scary
/obj/item/gun/energy/emitter,
/obj/item/gun/energy/spikethrower,
/obj/item/gun/energy/bsg/prebuilt,
/obj/item/gun/energy/xray,
/obj/item/gun/energy/plasma_pistol,
/obj/item/gun/projectile/automatic/pistol/APS, // whyyy is this capitalized
/obj/item/gun/projectile/revolver/overgrown,
/obj/item/gun/energy/gun/blueshield/pdw9,
/obj/item/gun/energy/disabler/silencer,
/obj/item/gun/energy/lwap,
/obj/item/gun/energy/arc_revolver,
/obj/item/gun/projectile/automatic/ak814))
//if you add anything that isn't covered by the typepaths below, add it to summon_magic_objective_types
GLOBAL_LIST_INIT(summoned_magic, list(
/obj/item/spellbook/oneuse/fireball,
/obj/item/spellbook/oneuse/smoke,
/obj/item/spellbook/oneuse/blind,
/obj/item/spellbook/oneuse/mindswap,
/obj/item/spellbook/oneuse/forcewall,
/obj/item/spellbook/oneuse/knock,
/obj/item/spellbook/oneuse/horsemask,
/obj/item/spellbook/oneuse/charge,
/obj/item/spellbook/oneuse/summonitem,
/obj/item/gun/magic/wand,
/obj/item/gun/magic/wand/resurrection,
/obj/item/gun/magic/wand/teleport,
/obj/item/gun/magic/wand/door,
/obj/item/gun/magic/wand/fireball,
/obj/item/gun/magic/staff/healing,
/obj/item/gun/magic/staff/door,
/obj/item/scrying,
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/immortality_talisman,
/obj/item/melee/ghost_sword,
/obj/item/tarot_card_pack,
/obj/item/tarot_card_pack/jumbo))
GLOBAL_LIST_INIT(summoned_special_magic, list(
/obj/item/gun/magic/staff/animate,
/obj/item/storage/belt/wands/full,
/obj/item/contract,
/obj/item/gun/magic/staff/chaos,
/obj/item/necromantic_stone,
/obj/item/blood_contract,
/obj/item/tarot_generator))
//everything above except for single use spellbooks, because they are counted separately (and are for basic bitches anyways)
GLOBAL_LIST_INIT(summoned_magic_objectives, list(
/obj/item/contract,
/obj/item/blood_contract,
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/gun/magic,
/obj/item/immortality_talisman,
/obj/item/melee/ghost_sword,
/obj/item/necromantic_stone,
/obj/item/scrying,
/obj/item/spellbook,
/obj/item/storage/belt/wands/full,
/obj/item/tarot_generator))
// If true, it's the probability of triggering "survivor" antag.
GLOBAL_VAR_INIT(summon_guns_triggered, FALSE)
GLOBAL_VAR_INIT(summon_magic_triggered, FALSE)
/proc/give_guns(mob/living/carbon/human/H)
if(H.stat == DEAD || !(H.client))
return
if(H.mind)
if(iswizard(H) || H.mind.offstation_role)
return
if(prob(GLOB.summon_guns_triggered) && !(H.mind in SSticker.mode.traitors))
SSticker.mode.traitors += H.mind
H.mind.add_antag_datum(/datum/antagonist/survivalist/guns)
H.create_attack_log("<font color='red'>was made into a survivalist, and trusts no one!</font>")
H.create_log(CONVERSION_LOG, "was made into a survivalist")
var/gun_type = pick(GLOB.summoned_guns)
var/obj/item/gun/G = new gun_type(get_turf(H))
playsound(get_turf(H),'sound/magic/summon_guns.ogg', 50, TRUE)
var/in_hand = H.put_in_hands(G) // not always successful
to_chat(H, "<span class='warning'>\A [G] appears [in_hand ? "in your hand" : "at your feet"]!</span>")
/proc/give_magic(mob/living/carbon/human/H)
if(H.stat == DEAD || !(H.client))
return
if(H.mind)
if(iswizard(H) || H.mind.offstation_role)
return
if(prob(GLOB.summon_magic_triggered) && !(H.mind in SSticker.mode.traitors) && !jobban_isbanned(H, ROLE_SYNDICATE))
SSticker.mode.traitors += H.mind
H.mind.add_antag_datum(/datum/antagonist/survivalist/magic)
H.create_attack_log("<font color='red'>was made into a survivalist, and trusts no one!</font>")
H.create_log(CONVERSION_LOG, "was made into a survivalist")
var/magic_type = pick(GLOB.summoned_magic)
var/lucky = FALSE
if(prob(SPECIALIST_MAGIC_PROB))
magic_type = pick(GLOB.summoned_special_magic)
lucky = TRUE
var/obj/item/M = new magic_type(get_turf(H))
playsound(get_turf(H),'sound/magic/summon_magic.ogg', 50, TRUE)
var/in_hand = H.put_in_hands(M)
to_chat(H, "<span class='warning'>\A [M] appears [in_hand ? "in your hand" : "at your feet"]!</span>")
if(lucky)
to_chat(H, "<span class='notice'>You feel incredibly lucky.</span>")
/proc/rightandwrong(summon_type, mob/user, survivor_probability)
if(user) //in this case either someone holding a spellbook or a badmin
to_chat(user, "<span class='warning'>You summoned [summon_type]!</span>")
message_admins("[ADMIN_LOOKUPFLW(user)] summoned [summon_type]!")
log_game("[key_name(user)] summoned [summon_type]!")
if(summon_type == SUMMON_MAGIC)
GLOB.summon_magic_triggered = survivor_probability
else if(summon_type == SUMMON_GUNS)
GLOB.summon_guns_triggered = survivor_probability
else
CRASH("Bad summon_type given: [summon_type]")
for(var/mob/living/carbon/human/H in GLOB.player_list)
var/turf/T = get_turf(H)
if(T && is_away_level(T.z))
continue
if(summon_type == SUMMON_MAGIC)
give_magic(H)
else
give_guns(H)
#undef SPECIALIST_MAGIC_PROB