Thread Rating:
  • 3 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[FEATURE] Infernal Contracts - A Chaplain Traitor Item/Admin Gimmick
#16
(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.
Reply
#17
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=...3#pid73393
Reply
#18
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.
Reply
#19
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.
Reply
#20
(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.
Reply
#21
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.
Reply
#22
This is really cool, even if you don't find the energy for more I hope to see some of this employed someday
Reply
#23
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.
Reply
#24
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.
Reply
#25
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.
Reply
#26
(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.
Reply
#27
Actually, on second thought, my ideas for the contracts were fucking horrible.
Reply
#28
We need to make a model that parallels the Kübler-Ross Model, but with coding instead of grieving.
Reply
#29
How about job related contracts? The engineer's could trade their souls for Maxwell's Demon
Reply
#30
(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.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)