Skip to content

Diabolical resurrection#5890

Closed
marlyn-x86 wants to merge 5 commits into
ParadiseSS13:masterfrom
marlyn-x86:diabolical_resurrection
Closed

Diabolical resurrection#5890
marlyn-x86 wants to merge 5 commits into
ParadiseSS13:masterfrom
marlyn-x86:diabolical_resurrection

Conversation

@marlyn-x86
Copy link
Copy Markdown
Contributor

@marlyn-x86 marlyn-x86 commented Nov 14, 2016

A resurrection of @lordpidey's Devil Antag PR #5419.

The words below are Lordpidey's:


Aright, I think it's finally ready for testing.
🆑 lordPidey
rscadd: Infernal devils have been seen onboard our spacestations, offering great boons in exchange for your soul.
rscadd: Employees are reminded that their soul already belongs to Nanotrasen. If you have sold your soul in error, a lawyer or head of personnel can help return your soul to Nanotrasen by hitting you with your employment contract.
rscadd: Nanotrasen headquarters will be bluespacing employment contracts into the IA's office filing cabinet when a new arrival reaches the station. It is recommended that the lawyer create copies of some of these for safe keeping.
rscadd: Due to the recent infernal incursions, the station library has been equipped with a Codex Gigas to help research infernal weaknesses. Please note that reading this book may have unintended side effects. Also note, you must spell the devil's name exactly, as there are countless demons with similar names.
rscadd: When a devil dies, if the proper banishment ritual is not performed on it's remains, the devil will revive itself at the cost of some of it's power. The banishment ritual is described in the Codex Gigas.
rscadd: When a demon gains enough souls, It's form will mutate to a more demonic looking form. The Arch-demon form is known to be on par with an ascended shadowling in power.
add: Added Devil agent gamemode, where multiple devils are each trying to buy more souls than the next in line.
add: If you've already sold your soul, you can sell it again to a different devil. You can even go back and forth for INFINITE POWER.
/🆑

Hello, I'm a programmer from /TG/station, and I made an antagonist and it's accompanying gamemode. (Technically two gamemodes, but devil agent is almost always more fun than regular devil, except in super low pop)

Basically, the antagonist is a soul merchant type devil, going around offering contracts of power in exchange for souls. The more souls the devil gets, the more powerful, and obvious they become.

In the Devil Agent mode, each devil has two objectives, one random objective relating to souls, and one that is control more souls than X other devil.

The lawyer can buy back your souls by finding loopholes in the deal, using your NT employment contract (Which starts in his office)

The librarian can research the devil's weaknesses, and banishment rituals using the Codex Libras which will start in his office.

Although this antagonist is designed to be a little heavier on RP than standard antagonists, it works in both high and low RP settings.

Devils have a truename, a ban, an obligation, a bane, and a banishment ritual. The bane and banishment ritual are mechanically enforced, but the ban and obligation are to be treated like silicon laws. (An example of an obligation is "When not acting in self defense, you must always offer your victim food before harming them.", and an example ban is "You must never strike an unconscious person.") All of this information can be looked up by the librarian from the truename.

Anyway, I'm still working on porting it over, this is far from done, and does not compile at the moment. However, I feel this PR would be a good place to discuss any changes you would like to see for this codebase.

Original antag implementation PR
Devil agent PR

@marlyn-x86
Copy link
Copy Markdown
Contributor Author

Alright, the first order is resolving icon conflicts.

@KasparoVy
Copy link
Copy Markdown
Contributor

I LOVE how it says where the conflicts are now, wow. Really wishing that was a thing ages ago haha

@NethIafin
Copy link
Copy Markdown
Contributor

git console can tell you that since I don't know when. But yeah, nice addition to the website

@mvanalphen
Copy link
Copy Markdown
Contributor

mvanalphen commented Nov 14, 2016

Very strongly in favor of this 👍. Needs to be rebased though.

@NethIafin
Copy link
Copy Markdown
Contributor

NethIafin commented Nov 14, 2016

CL should be split (possibly) to take all participants into account, since it is a continuation of a great work (time issues are bitch)

@marlyn-x86
Copy link
Copy Markdown
Contributor Author

Whoops, overlooked that pidey didn't add their name to the changelog! Fixed.

@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from 3dd6869 to dd73bef Compare November 14, 2016 20:05
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

Now to squash this mountain of commits flat.

@lordpidey
Copy link
Copy Markdown
Contributor

Thank you for picking this up @Crazylemon64. I simply don't have time to maintain it.

@KingPhilipIII
Copy link
Copy Markdown

I was worried that the Devil PR would die without Pidey for a moment. Much appreciated Crazy.

@Fox-McCloud Fox-McCloud added the Feature This PR is a new addition to the game label Nov 15, 2016
@TheDZD TheDZD added the Merge Conflict This PR is merge conflicted label Nov 25, 2016
@marlyn-x86 marlyn-x86 added Map Edit This PR will modify a map New Gamemode Feature This PR is a new addition to the game and removed Feature This PR is a new addition to the game labels Dec 1, 2016
@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from dd73bef to 376b057 Compare December 20, 2016 02:18
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

I squished down the world - now to rebase it because I just rebased it on an old version

@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch 2 times, most recently from 028c74e to b3a39f7 Compare December 20, 2016 02:33
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

marlyn-x86 commented Dec 20, 2016

@lordpidey I've rebased everything, but I want to be sure I won't make a mistake when re-mapping your changes (map conflicts are a pain, especially when rebasing and the same conflicts will arise several times over)

If I have this correct, to summarize:

  • Burial robes in chaplain's office
  • Employment records in the IAA's office
  • Codex Gigas in the librarian's room

Are these all the changes made?

(I'll wait to actually make the map changes until I have a clear run at modifying the map - Fethas' shuttle PR takes precedence over something like this)

@marlyn-x86 marlyn-x86 removed the Merge Conflict This PR is merge conflicted label Dec 20, 2016
@lordpidey
Copy link
Copy Markdown
Contributor

Yes, that is the extent of the mapping changes.

@marlyn-x86
Copy link
Copy Markdown
Contributor Author

tgstation/tgstation#21765
Oh, a thing I need to staple onto this PR

@taukausanake
Copy link
Copy Markdown
Contributor

Can we get light floor tiles that change like that? Would be nice

@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from a6db54c to bd933f8 Compare December 22, 2016 20:09
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

Alright, now to wait for a clear shot at editing the map!
The rest of the code is ready for review.

@marlyn-x86 marlyn-x86 added the BoxStation This PR will edit the map BoxStation (Cyberiad) label Jan 6, 2017
@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from 9b73a91 to 3ea411c Compare July 1, 2018 00:34
@KasparoVy
Copy link
Copy Markdown
Contributor

Unreal, it's back

@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from 3ea411c to d8ea4ab Compare July 1, 2018 01:59
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

oops I ported the devil friends but a) i didn't test em yet and b) i trampled all over the ghost spawner stuff fethas has a PR for porting so I gotta hit up that one first

@Aurorablade
Copy link
Copy Markdown
Contributor

JUST TRAMPLE IT...i will fix it later..i got to go through map conflicts on that.

Comment thread code/datums/mind.dm
var/antag_hud_icon_state = null //this mind's ANTAG_HUD should have this icon_state
var/datum/atom_hud/antag/antag_hud = null //this mind's antag HUD
var/datum/mindslaves/som //stands for slave or master...hush..
var/datum/devilinfo/devilinfo //Information about the devil, if any.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This variable is defined twice.

/obj/item/clothing/under/rank/internalaffairs = 1,
/obj/item/clothing/under/rank/ntrep = 1,
/obj/item/clothing/under/det = 1,
/obj/item/clothing/under/wedding/bride_white = 1,
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one seems appropriate to set to 2.

@lordpidey
Copy link
Copy Markdown
Contributor

Thank you for doing this, I believe this will work much better on Paradise than TGstation.

@variableundefined variableundefined added Merge Conflict This PR is merge conflicted and removed Merge Conflict This PR is merge conflicted labels Oct 13, 2018
lordpidey and others added 5 commits October 21, 2018 13:08
Fixes more compile errors.  Down to 65 now.

updates << into to_chat

Down to 60 errors, also starts to port the codex gigas and law 666 for cyborg devils.

Fixes more compile errors.  Down to 41 now.

Replaces timers with spawns, and <<s with to_chats
40 compile errors.

Down to 34 compile errors.

whoops, actually down to 34 now.

Down to 25 compile errors.

Down to 15 compile errors, I'llprobably need some help at this point.

Woo!  Down to 7 compile errors.

Ported over devil hud.  Number of errors up to 19.

WOO!  It compiles.  It's completely untested, but it compiles.

Adds devils to traitor panel

Implements iron, silver and salt banes.

implements flashing lights bane

Selling your soul prevents cloning, and some other methods of revival.

Implements harvest bane

Merged and sorted icons/obj/bureaucracy.dmi

Adds toy codex gigas

Fixes compile errors, adds codex gigas sprite.

Lots of bug fixes.  Contracts work, devil revival is more consistant, etc

Adds missing icons for flaming contracts, summon pitchfork, summon wealth, employment cabinet, and sintouch.

Converts DEEP LORE explanations from hell to inferno incorporated.

Banishes the compile errors.

Devils come from hell again.

replaces offer drink obligation with a much more lore appropriate devil's fiddle reference
Also fixes contract bashing brain damage chance.

Undoes some changes I accidentally did to example config files.

Fixes up a few remaining bugs.

Puts in the codex gigas and employment contract cabinets.
 -- Lemon - I kinda skipped this one, I'll patch it back in later because
 map conflicts are suffering incarnate

Solves the devil law problem in a REALLY hacky snowflake way.

Fixes a few methods in which a hellbound can be revived.

Devils respawn with a limited number of appropriate items, instead of COMPLETELY naked upon corpse destruction.  Also adds lines to example config.

Updates devil laws to be less hacky.

Objective to sintouch x mortals now greentexts correctly.

Contracts no longer cause brain damage.  I didn't realize it was lethal on this codebase.  Oops.

Splits dust(visual_only) into dust() and dust_animation() procs

Fixes some defines.
Adds undef statements to improve compile times.

Fixes race changes from demonic form changes.

Fixes small runtime error. (Which somehow didn't break anything?)

Implements lots of small changes/corrections suggested by CrazyLemon64

I still need to test these changes, along with other potential issues he brought up.

Fixes harvest bane and power contracts.  Also adds a few </span> tag enders.

Corrects some edge cases with revival contracts.

Fixes compile error.

Reverts unneccecary change to item/weapon/reagent_containers

Cleans up the code for readability.

Prevents cloning of hellbound individuals.

Latejoins now properly have employment contracts added to employment cabinets (provided they still exist)

Infernal contracts are no longer rendered unreadable by fire and alcohol.

All fireproof paper remains readable after being fireballed, not just infernal contracts.  (Though infernal contracts are the only fireproof paper atm)

Fixes an edge case problem with cloning.

Adds is_revivable proc to mind.

Removes snowflake code involving preventing soulseller resurrection.

Indulges in the sin of sloth, and copies tg's lazy list macros

Proc calls that transform the user no longer go to a null target

Fixes devil UI, human regression will keep appearance, and adds danceoff

Devil's base forms no longer suffocate inside the devil

Fixes runtimes, gets stuff working

The arch devil can now blast down walls with their pitchfork

EXTERMINATE ALL SPIRITS

Activates devil clause in voice of god

Fawks Mcclood

Feature P A R I T Y

Fixes devil bugs from testing

- Does a death refactor to make sure that diabolical resurrection works

- Walls no longer leave girders when blasted by the devil

- Getting a new body gives you a rudimentary amount of equipment to work
with to get out of maintenance or whereever
Also oops tramples all over Fethas' corpse PR that's still up I need
to take care of that one
@marlyn-x86 marlyn-x86 force-pushed the diabolical_resurrection branch from aecde24 to 826371d Compare October 21, 2018 23:09
@marlyn-x86 marlyn-x86 removed the Merge Conflict This PR is merge conflicted label Oct 22, 2018
@marlyn-x86
Copy link
Copy Markdown
Contributor Author

2 years later...

@marlyn-x86
Copy link
Copy Markdown
Contributor Author

(also oops i accidentally dropped pidey's changes in the rebase, i'll want to fix that)

Comment thread code/game/atoms.dm
_preloader.load(src)
. = ..()
attempt_init(...)
attempt_init(arglist(args))
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: I made this change because the devil friend's arguments would not pass on to the Initialize function with the original code setup. Was the ellipsis here for a reason?

@@ -0,0 +1,8 @@
//what could possibly go wrong
var/list/devil_machines = typecacheof(/obj/item/circuitboard, TRUE) - list(
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file is the skeleton of a machine whitelisting system where a person could sell their soul for a machine (and parts to build it) of their choice. I've not gotten around to fully fleshing that out, however.

Comment thread code/datums/soullink.dm
if(soulsharer)
soulsharer.dust(FALSE)

/datum/soullink/oneway/devilfriend
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should I leave this subtype here? Right now, the system requires no additional code, but it helps flag what kind of soul link this is

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did the same thing with pitchforks, even though two years later, there's still no other types of pitchfork.


return 1

/datum/controller/gameticker/proc/HasRoundStarted()
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, this probably(?) doesn't belong here?

Comment thread code/datums/ai_laws.dm
laws.internal_delete_law(laws.ion_laws, laws.state_ion, src)

/datum/ai_law/sixsixsix/delete_law(var/datum/ai_laws/laws)
laws.internal_delete_law(laws.devil_laws, laws.state_devil,src)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spacing

Comment thread code/datums/mind.dm
if("clear")
if(src in ticker.mode.devils)
if(istype(current,/mob/living/carbon/true_devil/))
to_chat(usr,"<span class='warning'>This cannot be used on true or arch-devils.</span>")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Early return >else

Comment thread code/datums/mind.dm
if("sintouched")
var/mob/living/carbon/human/H = current
H.influenceSin()
message_admins("[key_name_admin(usr)] has sintouch'ed [current].")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs a log_admin

Comment thread code/datums/mind.dm
/datum/mind/proc/messageable_mob()
if(current && current.client)
return current
else
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Else is pointless

visible_message("<span class='warning'>[src] disappears in a flashfire!</span>")
playsound(get_turf(src), 'sound/misc/enter_blood.ogg', 100, 1, -1)
var/obj/effect/dummy/slaughter/holder = new(loc)
src.ExtinguishMob()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No src.

to_chat(owner,"<span class='boldwarning'>However, your infernal form is not without weaknesses.</span>")
to_chat(owner,"You may not use violence to coerce someone into selling their soul.")
to_chat(owner,"You may not directly and knowingly physically harm a devil, other than yourself.")
to_chat(owner,lawlorify[LAW][bane])
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spacing

explanation_text = "You shouldn't see this text. Error:DEVIL3"

/datum/objective/devil/sintouch/New()
target_amount = pick(4,5)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Spacing

var/msg = "<span class='info'>*---------*\nThis is [bicon(src)] <b>[src]</b>!\n"

//Left hand items
if(l_hand && !(l_hand.flags&ABSTRACT))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Operator spacing in this whole proc

add_attack_logs(M, src, "attacked")
updatehealth()
if (INTENT_DISARM)
if (!lying && !ascended) //No stealing the arch devil's pitchfork.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 much spacing

Comment thread code/game/machinery/cloning.dm Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

^

@marlyn-x86
Copy link
Copy Markdown
Contributor Author

This PR's holding up the queue, so I'll close it until I get a stretch of time to de-conflict it. If someone else wants to take a stab at it, feel free

@marlyn-x86 marlyn-x86 closed this Nov 16, 2018
@DesolateG
Copy link
Copy Markdown
Contributor

;-; one day... one day

@lordpidey
Copy link
Copy Markdown
Contributor

D:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BoxStation This PR will edit the map BoxStation (Cyberiad) Feature This PR is a new addition to the game Map Edit This PR will modify a map MetaStation This PR will edit the map MetaStation (Cerebron)

Projects

None yet

Development

Successfully merging this pull request may close these issues.