Goonstation Forums
[FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Printable Version

+- Goonstation Forums (https://forum.ss13.co)
+-- Forum: Discussion (https://forum.ss13.co/forumdisplay.php?fid=6)
+--- Forum: Patches (https://forum.ss13.co/forumdisplay.php?fid=30)
+---- Forum: Implemented (https://forum.ss13.co/forumdisplay.php?fid=31)
+---- Thread: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick (/showthread.php?tid=6384)

Pages: 1 2 3


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Mageziya - 05-22-2016

(05-21-2016, 05:15 PM)Noah Buttes Wrote: Oh god, what started out as a dumb little side gimmick thing is turning into a massive project.

What the fuck have I gotten myself into?

I'm 90% that's something every codemin has said to themselves at some point.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 05-26-2016

IT COMPILES!

In-game testing is still pending, but I managed to eliminate all compiler errors!

Edit 2: Unless you want invisible apocalyptic horses rampaging about, you'll have to manually import horsedrone.dmi and horsedrone-dead.dmi into the effects icon file named 96x96.dmi. 

Edit:

Here are some sprites I made for it.

[Image: 2t6PoJn.png]

DMIs can be found in this post:

http://forum.ss13.co/showthread.php?tid=6315&pid=73393#pid73393


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Erik - 05-28-2016

I looked at the code, why would you re-define the vampire and macho procs and not re-use whats already there by giving those a extra named var? e.g.

Code:
/mob/proc/make_vampire(var/shitty = 0)
    if (ishuman(src) || iscritter(src))
        if (ishuman(src))
            var/datum/abilityHolder/vampire/A = src.get_ability_holder(/datum/abilityHolder/vampire)
            if (A && istype(A))
                return

            var/datum/abilityHolder/vampire/V = src.add_ability_holder(/datum/abilityHolder/vampire)

            if(shitty) // Infernal vampire.
                V.addAbility(/datum/targetable/vampire/blood_tracking)
            else
                V.addAbility(/datum/targetable/vampire/vampire_bite)
                V.addAbility(/datum/targetable/vampire/blood_tracking)
                V.addAbility(/datum/targetable/vampire/cancel_stuns)
                V.addAbility(/datum/targetable/vampire/glare)
                V.addAbility(/datum/targetable/vampire/hypnotize)

            if (src.mind)
                src.mind.is_vampire = V

            spawn (25) // Don't remove.
                if (src) src.assign_gimmick_skull()

        else if (iscritter(src)) // For testing. Just give them all abilities that are compatible.
            var/mob/living/critter/C = src

            if (isnull(C.abilityHolder)) // They do have a critter AH by default...or should.
                var/datum/abilityHolder/vampire/A2 = C.add_ability_holder(/datum/abilityHolder/vampire)
                if (!A2 || !istype(A2, /datum/abilityHolder/))
                    return

            if(shitty) // Infernal vampire.
                C.addAbility(/datum/targetable/vampire/blood_tracking)
            else
                C.abilityHolder.addAbility(/datum/targetable/vampire/cancel_stuns/mk2)
                C.abilityHolder.addAbility(/datum/targetable/vampire/glare)
                C.abilityHolder.addAbility(/datum/targetable/vampire/hypnotize)
                C.abilityHolder.addAbility(/datum/targetable/vampire/plague_touch)
                C.abilityHolder.addAbility(/datum/targetable/vampire/phaseshift_vampire)
                C.abilityHolder.addAbility(/datum/targetable/vampire/call_bats)
                C.abilityHolder.addAbility(/datum/targetable/vampire/vampire_scream)
                C.abilityHolder.addAbility(/datum/targetable/vampire/enthrall)

            if (C.mind)
                C.mind.is_vampire = C.abilityHolder

        if (src.mind && src.mind.special_role != "omnitraitor")
            if(shitty)
                boutput(src, "<span style=\"color:blue\">Oh shit, your fangs just broke off! Looks like you'll have to get blood the HARD way.</span>")

            src << browse(grabResource("html/traitorTips/vampireTips.html"),"window=antagTips;titlebar=1;size=600x400;can_minimize=0;can_resize=0")

    else return

and then just call it with thing.make_vampire(shitty=1) this would greatly reduce the grody copypasta in here.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 05-28-2016

Oh jeez, yeah, that would help.

I'll admit, I was in a haze from lack of sleep last night.

I can probably clean up some things, yeah.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Mageziya - 05-28-2016

(05-28-2016, 05:29 AM)ErikHanson Wrote: thing.make_vampire(shitty=1)

The fact that this is a legitimate, functioning line of code is amazing to me.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 05-29-2016

As much as I would love to add more contracts to this, I'm afraid the spirit of inspiration has left me, so I don't really feel like I'd get any further enjoyment out of working on this project anymore.

The current version is, however, complete by itself. It is also, as far as I could tell through private testing, bug free.

I consider it finished and ready for evaluation and/or implementation.

Oh! I made sure to remove myself from admins.txt. I uh, almost accidentally left that in despite making a reminder note to remove that upon release. Whoops.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Boa Jacque - 05-29-2016

This is really cool, even if you don't find the energy for more I hope to see some of this employed someday


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 06-08-2016

Well shit, I've been struck by more inspiration.

I could make contracts based on six of the seven deadly sins.

I've already got some ideas for greed, wrath, gluttony, sloth, and envy. I still need to think of something for pride.

I'm not going to make one based on lust, for obvious reasons.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Cirrial - 06-08-2016

To be honest, you could always interpret lust from another angle. Wikipedia gives a definition of lust more generally as "a psychological force producing intense wanting for an object, or circumstance fulfilling the emotion". The problem is I can't immediately think of a good interpretation with that which doesn't step on envy, greed or gluttony's territory. Wrath, of course, has bloodlust more than covered.

Hm. Maybe it would be best to just drop it.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Boon Yoon - 06-08-2016

Maybe a lust contract could involve selling one's soul for having their blood produce Pure Love. Make it so that if something goes wrong, it turns into Rotting.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 06-08-2016

(06-08-2016, 10:45 AM)Boon Yoon Wrote: Maybe a lust contract could involve selling one's soul for having their blood produce Pure Love. Make it so that if something goes wrong, it turns into Rotting.

For the first time in your life, you finally feel loved.

Or maybe that's just those burritos coming back up.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 06-09-2016

Actually, on second thought, my ideas for the contracts were fucking horrible.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Mageziya - 06-09-2016

We need to make a model that parallels the Kübler-Ross Model, but with coding instead of grieving.


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Frank_Stein - 06-09-2016

How about job related contracts? The engineer's could trade their souls for Maxwell's Demon


RE: [FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick - Noah Buttes - 06-09-2016

(06-09-2016, 08:43 PM)Mageziya Wrote: We need to make a model that parallels the Kübler-Ross Model, but with coding instead of grieving.
I'm moving into the acceptance phase.

It's good enough as it is, I don't need to really add anything else.

(06-09-2016, 08:46 PM)Frank_Stein Wrote: How about job related contracts? The engineer's could trade their souls for Maxwell's Demon

If someone else wants to add this, be my guest.