Diabolical resurrection#5890
Conversation
|
Alright, the first order is resolving icon conflicts. |
|
I LOVE how it says where the conflicts are now, wow. Really wishing that was a thing ages ago haha |
|
git console can tell you that since I don't know when. But yeah, nice addition to the website |
|
Very strongly in favor of this 👍. Needs to be rebased though. |
|
CL should be split (possibly) to take all participants into account, since it is a continuation of a great work (time issues are bitch) |
|
Whoops, overlooked that pidey didn't add their name to the changelog! Fixed. |
3dd6869 to
dd73bef
Compare
|
Now to squash this mountain of commits flat. |
|
Thank you for picking this up @Crazylemon64. I simply don't have time to maintain it. |
|
I was worried that the Devil PR would die without Pidey for a moment. Much appreciated Crazy. |
dd73bef to
376b057
Compare
|
I squished down the world - now to rebase it because I just rebased it on an old version |
028c74e to
b3a39f7
Compare
|
@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:
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) |
|
Yes, that is the extent of the mapping changes. |
|
tgstation/tgstation#21765 |
|
Can we get light floor tiles that change like that? Would be nice |
a6db54c to
bd933f8
Compare
|
Alright, now to wait for a clear shot at editing the map! |
9b73a91 to
3ea411c
Compare
|
Unreal, it's back |
3ea411c to
d8ea4ab
Compare
|
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 |
|
JUST TRAMPLE IT...i will fix it later..i got to go through map conflicts on that. |
| 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. |
There was a problem hiding this comment.
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, |
There was a problem hiding this comment.
This one seems appropriate to set to 2.
|
Thank you for doing this, I believe this will work much better on Paradise than TGstation. |
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
aecde24 to
826371d
Compare
|
2 years later... |
|
(also oops i accidentally dropped pidey's changes in the rebase, i'll want to fix that) |
| _preloader.load(src) | ||
| . = ..() | ||
| attempt_init(...) | ||
| attempt_init(arglist(args)) |
There was a problem hiding this comment.
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( | |||
There was a problem hiding this comment.
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.
| if(soulsharer) | ||
| soulsharer.dust(FALSE) | ||
|
|
||
| /datum/soullink/oneway/devilfriend |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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() |
There was a problem hiding this comment.
Hmm, this probably(?) doesn't belong here?
| 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) |
| 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>") |
| if("sintouched") | ||
| var/mob/living/carbon/human/H = current | ||
| H.influenceSin() | ||
| message_admins("[key_name_admin(usr)] has sintouch'ed [current].") |
There was a problem hiding this comment.
This needs a log_admin
| /datum/mind/proc/messageable_mob() | ||
| if(current && current.client) | ||
| return current | ||
| else |
| 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() |
| 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]) |
| explanation_text = "You shouldn't see this text. Error:DEVIL3" | ||
|
|
||
| /datum/objective/devil/sintouch/New() | ||
| target_amount = pick(4,5) |
| var/msg = "<span class='info'>*---------*\nThis is [bicon(src)] <b>[src]</b>!\n" | ||
|
|
||
| //Left hand items | ||
| if(l_hand && !(l_hand.flags&ABSTRACT)) |
There was a problem hiding this comment.
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. |
|
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 |
|
;-; one day... one day |
|
D: |
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