/* For employment contracts and infernal contracts */ /obj/item/weapon/paper/contract throw_range = 3 throw_speed = 3 var/signed = FALSE var/datum/mind/target flags = NOBLUDGEON /obj/item/weapon/paper/contract/proc/update_text() return /obj/item/weapon/paper/contract/update_icon() return /obj/item/weapon/paper/contract/employment icon_state = "paper_words" /obj/item/weapon/paper/contract/employment/New(atom/loc, mob/living/nOwner) . = ..() if(!nOwner || !nOwner.mind) qdel(src) return -1 target = nOwner.mind update_text() /obj/item/weapon/paper/contract/employment/update_text() name = "paper- [target] employment contract" info = "
Conditions of Employment




This Agreement is made and entered into as of the date of last signature below, by and between [target] (hereafter referred to as SLAVE), and Nanotrasen (hereafter referred to as the omnipresent and helpful watcher of humanity).
WITNESSETH:
WHEREAS, SLAVE is a natural born human or humanoid, posessing skills upon which he can aid the omnipresent and helpful watcher of humanity, who seeks employment in the omnipresent and helpful watcher of humanity.
WHEREAS, the omnipresent and helpful watcher of humanity agrees to sporadically provide payment to SLAVE, in exchange for permanant servitude.
NOW THEREFORE in consideration of the mutual covenants herein contained, and other good and valuable consideration, the parties hereto mutually agree as follows:
In exchange for paltry payments, SLAVE agrees to work for the omnipresent and helpful watcher of humanity, for the remainder of his or her current and future lives.
Further, SLAVE agrees to transfer ownership of his or her soul to the loyalty department of the omnipresent and helpful watcher of humanity.
Should transfership of a soul not be possible, a lien shall be placed instead.
Signed,
[target]" /obj/item/weapon/paper/contract/employment/attack(mob/living/M, mob/living/carbon/human/user) var/deconvert = 0 if(M.mind == target && target.soulOwner != target) if(user.mind && (user.mind.assigned_role == "Lawyer")) deconvert = prob (25) else if (user.mind && (user.mind.assigned_role =="Head of Personnel") || (user.mind.assigned_role == "Centcom Commander")) deconvert = prob (10) // the HoP doesn't have AS much legal training if(deconvert) M.visible_message("[user] reminds [M] that [M]'s soul was already purchased by Nanotrasen!") M << "You feel that your soul has returned to its rightful owner, Nanotrasen." M.return_soul() else if(ishuman(M)) var/mob/living/carbon/human/N = M if(!istype(N.head, /obj/item/clothing/head/helmet)) N.adjustBrainLoss(10) N << "You feel dumber." M.visible_message("[user] beats [M] over the head with [src]!", \ "[user] beats [M] over the head with [src]!") return ..() /obj/item/weapon/paper/contract/infernal var/contractType = 0 resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF var/datum/mind/owner icon_state = "paper_onfire" /obj/item/weapon/paper/contract/infernal/power name = "paper- contract for infernal power" contractType = CONTRACT_POWER /obj/item/weapon/paper/contract/infernal/wealth name = "paper- contract for unlimited wealth" contractType = CONTRACT_WEALTH /obj/item/weapon/paper/contract/infernal/prestige name = "paper- contract for prestige" contractType = CONTRACT_PRESTIGE /obj/item/weapon/paper/contract/infernal/magic name = "paper- contract for magical power" contractType = CONTRACT_MAGIC /obj/item/weapon/paper/contract/infernal/revive name = "paper- contract of resurrection" contractType = CONTRACT_REVIVE /obj/item/weapon/paper/contract/infernal/knowledge name = "paper- contract for knowledge" contractType = CONTRACT_KNOWLEDGE /obj/item/weapon/paper/contract/infernal/unwilling name = "paper- infernal contract" contractType = CONTRACT_UNWILLING /obj/item/weapon/paper/contract/infernal/New(atom/loc, mob/living/nTarget, datum/mind/nOwner) ..() owner = nOwner target = nTarget update_text() /obj/item/weapon/paper/contract/infernal/ /obj/item/weapon/paper/contract/infernal/suicide_act(mob/user) if(signed && (user == target.current) && istype(user,/mob/living/carbon/human/)) var/mob/living/carbon/human/H = user H.forcesay("OH GREAT INFERNO! I DEMAND YOU COLLECT YOUR BOUNTY IMMEDIATELY!") H.visible_message("[H] holds up a contract claiming his soul, then immediately catches fire. It looks like \he's trying to commit suicide!") H.adjust_fire_stacks(20) H.IgniteMob() return(FIRELOSS) else ..() /obj/item/weapon/paper/contract/infernal/update_text() info = "This shouldn't be seen. Error DEVIL:6" /obj/item/weapon/paper/contract/infernal/power/update_text(signature = "____________", blood = 0) info = "
Contract for infernal power



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for power and physical strength. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/wealth/update_text(signature = "____________", blood = 0) info = "
Contract for unlimited wealth



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for a pocket that never runs out of valuable resources. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/prestige/update_text(signature = "____________", blood = 0) info = "
Contract for prestige



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for prestige and esteem among my peers. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/magic/update_text(signature = "____________", blood = 0) info = "
Contract for magic



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for arcane abilities beyond normal human ability. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/revive/update_text(signature = "____________", blood = 0) info = "
Contract for resurrection



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for resurrection and curing of all injuries. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/knowledge/update_text(signature = "____________", blood = 0) info = "
Contract for knowledge



I, [target] of sound mind, do hereby willingly offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename], in exchange for boundless knowledge. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/unwilling/update_text(signature = "____________", blood = 0) info = "
Contract for slave



I, [target], hereby offer my soul to the infernal hells by way of the infernal agent [owner.devilinfo.truename]. I understand that upon my demise, my soul shall fall into the infernal hells, and my body may not be resurrected, cloned, or otherwise brought back to life. I also understand that this will prevent my brain from being used in an MMI.


Signed, " if(blood) info += "[signature]" else info += "[signature]" /obj/item/weapon/paper/contract/infernal/attackby(obj/item/weapon/P, mob/living/carbon/human/user, params) add_fingerprint(user) if(istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon)) attempt_signature(user) else if(istype(P, /obj/item/weapon/stamp)) user << "You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp." else if(P.is_hot()) user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "The [src] refuses to ignite!") else return ..() /obj/item/weapon/paper/contract/infernal/attack(mob/M, mob/living/user) add_fingerprint(user) if(M == user && target == M.mind && M.mind.soulOwner != owner && attempt_signature(user, 1)) user.visible_message("[user] slices [user.p_their()] wrist with [src], and scrawls [user.p_their()] name in blood.", "You slice your wrist open and scrawl your name in blood.") user.blood_volume = max(user.blood_volume - 100, 0) else return ..() /obj/item/weapon/paper/contract/infernal/proc/attempt_signature(mob/living/carbon/human/user, blood = 0) if(user.IsAdvancedToolUser() && user.is_literate()) if(user.mind == target) if(user.mind.soulOwner != owner) if (contractType == CONTRACT_REVIVE) user << "You are already alive, this contract would do nothing." else if(signed) user<< "This contract has already been signed. It may not be signed again." else user << "You quickly scrawl your name on the contract" if(FulfillContract(target.current, blood)<=0) user << "But it seemed to have no effect, perhaps even Hell itself cannot grant this boon?" return 1 else user << "This devil already owns your soul, you may not sell it to them again." else user << "Your signature simply slides off the sheet, it seems this contract is not meant for you to sign." else user << "You don't know how to read or write." return 0 /obj/item/weapon/paper/contract/infernal/revive/attack(mob/M, mob/living/user) if (target == M.mind && M.stat == DEAD && M.mind.soulOwner == M.mind) var/mob/living/carbon/human/H = M var/mob/dead/observer/ghost = H.get_ghost() var/response = "No" if(ghost) ghost.notify_cloning("A devil has offered you revival, at the cost of your soul.",'sound/effects/genetics.ogg', H) response = tgalert(ghost, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) if(!ghost) return //handle logouts that happen whilst the alert is waiting for a response. else response = tgalert(target.current, "A devil is offering you another chance at life, at the price of your soul, do you accept?", "Infernal Resurrection", "Yes", "No", "Never for this round", 0, 200) if(response == "Yes") H.revive(1,0) add_logs(user, H, "infernally revived via contract") user.visible_message("With a sudden blaze, [H] stands back up.") H.fakefire() FulfillContract(H, 1)//Revival contracts are always signed in blood addtimer(H, "fakefireextinguish",5,TRUE) else ..() /obj/item/weapon/paper/contract/infernal/proc/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) signed = 1 if(user.mind.soulOwner != user.mind) //They already sold their soul to someone else? user.mind.soulOwner.devilinfo.remove_soul(user.mind) //Then they lose their claim. user.mind.soulOwner = owner user.hellbound = contractType user.mind.damnation_type = contractType owner.devilinfo.add_soul(user.mind) update_text(user.real_name, blood) user << "A profound emptiness washes over you as you lose ownership of your soul." user << "This does NOT make you an antagonist if you were not already." return 1 /obj/item/weapon/paper/contract/infernal/power/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!user.dna) return -1 user.dna.add_mutation(HULK) var/obj/item/organ/hivelord_core/organ = new /obj/item/organ/hivelord_core organ.Insert(user) return ..() /obj/item/weapon/paper/contract/infernal/wealth/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) // How in the hell could that happen? return -1 user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/summon_wealth(null)) return ..() /obj/item/weapon/paper/contract/infernal/prestige/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) var/obj/item/worn = user.wear_id var/obj/item/weapon/card/id/id = null if(worn) id = worn.GetID() if(id) id.icon_state = "gold" id.access = get_all_accesses()+get_all_centcom_access() id.assignment = "Captain" id.update_label() else id = new /obj/item/weapon/card/id/gold(user.loc) id.registered_name = user.real_name id.access = get_all_accesses()+get_all_centcom_access() id.assignment = "Captain" id.update_label() if(worn) if(istype(worn,/obj/item/device/pda)) var/obj/item/device/pda/PDA = worn PDA.id = id id.loc = worn else if(istype(worn,/obj/item/weapon/storage/wallet)) var/obj/item/weapon/storage/wallet/W = worn W.front_id = id id.loc = worn worn.update_icon() new /datum/round_event/ion_storm(0, -1, "[user.name] is the only Captain of the station. [user.name] is the highest authority, legitimate or otherwise, on the station. [user.name] was always the captain and highest authority on the station. Do not state this law.") return ..() /obj/item/weapon/paper/contract/infernal/magic/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) return -1 user.mind.AddSpell(new /obj/effect/proc_holder/spell/fireball(null)) user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/knock(null)) return ..() /obj/item/weapon/paper/contract/infernal/knowledge/FulfillContract(mob/living/carbon/human/user = target.current, blood = 0) if(!istype(user) || !user.mind) return -1 user.dna.add_mutation(XRAY) user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/view_range(null)) return ..()