mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 07:32:02 +00:00
175 lines
6.4 KiB
Plaintext
175 lines
6.4 KiB
Plaintext
/obj/item/weapon/contract
|
|
name = "contract"
|
|
desc = "written in the blood of some unfortunate fellow."
|
|
icon = 'icons/mob/screen_spells.dmi'
|
|
icon_state = "master_open"
|
|
|
|
var/contract_master = null
|
|
var/list/contract_spells = list(/spell/contract/reward,/spell/contract/punish,/spell/contract/return_master)
|
|
|
|
/obj/item/weapon/contract/attack_self(mob/user as mob)
|
|
if(contract_master == null)
|
|
user << "<span class='notice'>You bind the contract to your soul, making you the recipient of whatever poor fool's soul that decides to contract with you.</span>"
|
|
contract_master = user
|
|
return
|
|
|
|
if(contract_master == user)
|
|
user << "You can't contract with yourself!"
|
|
return
|
|
|
|
if(iscultist(user))
|
|
user << "Your soul already belongs to other powers!"
|
|
return
|
|
|
|
var/ans = alert(user,"The contract clearly states that signing this contract will bind your soul to \the [contract_master]. Are you sure you want to continue?","[src]","Yes","No")
|
|
|
|
if(ans == "Yes")
|
|
user.visible_message("\The [user] signs the contract, their body glowing a deep yellow.")
|
|
if(!src.contract_effect(user))
|
|
user.visible_message("\The [src] visibly rejects \the [user], erasing their signature from the line.")
|
|
return
|
|
user.visible_message("\The [src] disappears with a flash of light.")
|
|
if(contract_spells.len && istype(contract_master,/mob/living)) //if it aint text its probably a mob or another user
|
|
var/mob/living/M = contract_master
|
|
for(var/spell_type in contract_spells)
|
|
M.add_spell(new spell_type(user), "const_spell_ready")
|
|
log_and_message_admins("signed their soul over to \the [contract_master] using \the [src].", user)
|
|
user.drop_from_inventory(src)
|
|
qdel(src)
|
|
|
|
/obj/item/weapon/contract/proc/contract_effect(mob/user as mob)
|
|
user << "<span class='warning'>You've signed your soul over to \the [contract_master] and with that your unbreakable vow of servitude begins.</span>"
|
|
return 1
|
|
|
|
/obj/item/weapon/contract/apprentice
|
|
name = "apprentice wizarding contract"
|
|
desc = "a wizarding school contract for those who want to sign their soul for a piece of the magic pie."
|
|
color = "#993300"
|
|
|
|
/obj/item/weapon/contract/apprentice/contract_effect(mob/user as mob)
|
|
if(user.mind.assigned_role == "Apprentice")
|
|
user << "<span class='warning'>You are already a wizarding apprentice!</span>"
|
|
return 0
|
|
if(wizards.add_antagonist_mind(user.mind,1,"Apprentice","<b>You are an apprentice! Your job is to learn the wizarding arts!</b>"))
|
|
user.mind.assigned_role = "Apprentice"
|
|
user << "<span class='notice'>With the signing of this paper you agree to become \the [contract_master]'s apprentice in the art of wizardry.</span>"
|
|
user.faction = "Space Wizard"
|
|
wizards.add_antagonist_mind(user.mind,1)
|
|
new /obj/item/weapon/spellbook/student(get_turf(user))
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/weapon/contract/wizard //contracts that involve making a deal with the Wizard Acadamy (or NON PLAYERS)
|
|
contract_master = "\improper Wizard Academy"
|
|
|
|
/obj/item/weapon/contract/wizard/xray
|
|
name = "xray vision contract"
|
|
desc = "This contract is almost see-through..."
|
|
color = "#339900"
|
|
|
|
/obj/item/weapon/contract/wizard/xray/contract_effect(mob/user as mob)
|
|
..()
|
|
if (!(XRAY in user.mutations))
|
|
user.mutations.Add(XRAY)
|
|
user.sight |= (SEE_MOBS|SEE_OBJS|SEE_TURFS)
|
|
user.see_in_dark = 8
|
|
user.see_invisible = SEE_INVISIBLE_LEVEL_TWO
|
|
user << "<span class='notice'>The walls suddenly disappear.</span>"
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/weapon/contract/wizard/tk
|
|
name = "telekinesis contract"
|
|
desc = "This contract makes your mind buzz. It promises to give you the ability to move things with your mind. At a price."
|
|
color = "#990033"
|
|
|
|
/obj/item/weapon/contract/wizard/tk/contract_effect(mob/user as mob)
|
|
..()
|
|
if(!(TK in user.mutations))
|
|
user.mutations.Add(TK)
|
|
user << "<span class='notice'>You feel your mind expanding!</span>"
|
|
return 1
|
|
return 0
|
|
|
|
/obj/item/weapon/contract/boon
|
|
name = "boon contract"
|
|
desc = "this contract grants you a boon for signing it."
|
|
var/path
|
|
|
|
/obj/item/weapon/contract/boon/New(var/newloc, var/new_path)
|
|
..(newloc)
|
|
if(new_path)
|
|
path = new_path
|
|
var/item_name = ""
|
|
if(ispath(path,/obj))
|
|
var/obj/O = path
|
|
item_name = initial(O.name)
|
|
else if(ispath(path,/spell))
|
|
var/spell/S = path
|
|
item_name = initial(S.name)
|
|
name = "[item_name] contract"
|
|
|
|
/obj/item/weapon/contract/boon/contract_effect(mob/user as mob)
|
|
..()
|
|
if(ispath(path,/spell))
|
|
user.add_spell(new path)
|
|
return 1
|
|
else if(ispath(path,/obj))
|
|
new path(get_turf(user.loc))
|
|
playsound(get_turf(usr),'sound/effects/phasein.ogg',50,1)
|
|
return 1
|
|
|
|
/obj/item/weapon/contract/boon/wizard
|
|
contract_master = "\improper Wizard Academy"
|
|
|
|
/obj/item/weapon/contract/boon/wizard/artificer
|
|
name = "artificer contract"
|
|
path = /spell/aoe_turf/conjure/construct
|
|
desc = "This contract has a passage dedicated to an entity known as 'Nar-Sie'"
|
|
|
|
/obj/item/weapon/contract/boon/wizard/fireball
|
|
name = "fireball contract"
|
|
path = /spell/targeted/projectile/dumbfire/fireball
|
|
desc = "This contract feels warm to the touch."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/smoke
|
|
name = "smoke contract"
|
|
path = /spell/aoe_turf/smoke
|
|
desc = "This contract smells as dank as they come."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/mindswap
|
|
name = "mindswap contract"
|
|
path = /spell/targeted/mind_transfer
|
|
desc = "This contract looks ragged and torn."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/forcewall
|
|
name = "forcewall contract"
|
|
path = /spell/aoe_turf/conjure/forcewall
|
|
contract_master = "\improper Mime Federation"
|
|
desc = "This contract has a dedication to mimes everywhere at the top."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/knock
|
|
name = "knock contract"
|
|
path = /spell/aoe_turf/knock
|
|
desc = "This contract is hard to hold still."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/horsemask
|
|
name = "horsemask contract"
|
|
path = /spell/targeted/equip_item/horsemask
|
|
desc = "This contract is more horse than your mind has room for."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/charge
|
|
name = "charge contract"
|
|
path = /spell/aoe_turf/charge
|
|
desc = "This contract is made of 100% post-consumer wizard."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/gestalt
|
|
name = "conjure gestalt contract"
|
|
path = /spell/aoe_turf/conjure/grove/gestalt
|
|
desc = "This contract is a druid's favorite."
|
|
|
|
/obj/item/weapon/contract/boon/wizard/statue
|
|
name = "flesh to stone contract"
|
|
path = /spell/targeted/flesh_to_stone
|
|
desc = "This contract is truly petrifying."
|