New wizard fixes and tweak (#1741)

-fix familiars being hungry and having wrong attack verbs
-add some extra mechanical differences to familiars
-fix some issues with buckling when it comes to jaunt and polymorph
-fix siphon life not working
Fixes #1737
This commit is contained in:
Alberyk
2017-02-11 11:36:45 -02:00
committed by skull132
parent e99ab0ae68
commit decf210cf0
7 changed files with 58 additions and 30 deletions
+1 -1
View File
@@ -241,7 +241,7 @@ proc/get_radio_key_from_channel(var/channel)
italics = 1
sound_vol *= 0.5 //muffle the sound a bit, so it's like we're actually talking through contact
var/list/hear = get_mobs_or_objects_in_view(message_range,src)
var/list/hear = hear(message_range,T)
var/list/hearturfs = list()
for(var/I in hear)
@@ -13,6 +13,9 @@
min_oxy = 1 //still require a /bit/ of air.
max_co2 = 0
unsuitable_atoms_damage = 1
hunger_enabled = 0
supernatural = 1
var/list/wizardy_spells = list()
@@ -24,7 +27,7 @@
/mob/living/simple_animal/familiar/carcinus
name = "crab"
desc = "An odd looking crab."
desc = "A small crab said to be made of stone and starlight."
icon = 'icons/mob/animal.dmi'
icon_state = "evilcrab"
icon_living = "evilcrab"
@@ -37,7 +40,8 @@
maxHealth = 200
melee_damage_lower = 10
melee_damage_upper = 15
attacktext = "pinches"
friendly = "pinches"
attacktext = "pinched"
resistance = 9
@@ -52,11 +56,16 @@
pixel_x = -16
speak_emote = list("gnashes")
attacktext = "bitten"
attack_sound = 'sound/weapons/bite.ogg'
environment_smash = 2
health = 100
maxHealth = 100
melee_damage_lower = 10
melee_damage_upper = 10
melee_damage_lower = 15
melee_damage_upper = 15
meat_type = /obj/item/weapon/reagent_containers/food/snacks/carpmeat
min_oxy = 0
@@ -76,11 +85,12 @@
response_help = "thinks better of touching"
environment_smash = 2
health = 150
maxHealth = 150
melee_damage_lower = 5
melee_damage_upper = 8
attacktext = "touches"
melee_damage_lower = 10
melee_damage_upper = 10
attacktext = "clawed"
wizardy_spells = list(/spell/targeted/torment)
@@ -99,6 +109,7 @@
icon_living = "goat"
icon_dead = "goat_dead"
speak_emote = list("brays")
attacktext = "kicked"
mob_size = MOB_SMALL
@@ -144,13 +155,16 @@
pass_flags = PASSTABLE
mob_size = MOB_MINISCULE
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
response_harm = "stamps on"
health = 15
maxHealth = 15
melee_damage_lower = 1
melee_damage_upper = 1
attacktext = "nibbles"
attacktext = "nibbled"
wizardy_spells = list(/spell/aoe_turf/smoke)
@@ -168,6 +182,8 @@
icon_dead = "cat3_dead"
icon_rest = "cat3_rest"
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
speak_emote = list("meows", "purrs")
holder_type = /obj/item/weapon/holder/cat
@@ -177,6 +193,6 @@
maxHealth = 25
melee_damage_lower = 3
melee_damage_upper = 4
attacktext = "claws"
attacktext = "clawed"
wizardy_spells = list(/spell/targeted/subjugation)
@@ -12,6 +12,7 @@
speed = -1
maxHealth = 80
health = 80
environment_smash = 2
harm_intent_damage = 10
melee_damage_lower = 15
@@ -18,7 +18,8 @@
/spell/targeted/ethereal_jaunt/cast(list/targets) //magnets, so mostly hardcoded
for(var/mob/living/target in targets)
target.transforming = 1 //protects the mob from being transformed (replaced) midjaunt and getting stuck in bluespace
if(target.buckled) target.buckled = null
if(target.buckled)
target.buckled.unbuckle_mob()
spawn(0)
var/mobloc = get_turf(target.loc)
var/obj/effect/dummy/spell_jaunt/holder = new /obj/effect/dummy/spell_jaunt( mobloc )
@@ -47,25 +47,25 @@
hud_state = "wiz_vampire"
cast_sound = 'sound/magic/enter_blood.ogg'
amt_dam_brute = 15
amt_dam_fire = 15
message = "You feel a sickening feeling as your body weakens."
/spell/targeted/life_steal/cast(var/list/targets, var/mob/living/carbon/human/caster)
for(var/mob/M in targets)
if(!(M.stat == DEAD))
amt_dam_brute = 15
amt_dam_fire = 15
/spell/targeted/life_steal/cast(list/targets, mob/living/user)
for(var/mob/living/M in targets)
if(M.stat == DEAD)
user << "There is no left life to steal."
return
if(isipc(target))
if(isipc(M))
user << "There is no life to steal."
return
M.visible_message("<span class='danger'>Blood flows from \the [M] into \the [caster]!</span>")
caster.adjustBruteLoss(-15)
caster.adjustFireLoss(-15)
M.visible_message("<span class='danger'>Blood flows from \the [M] into \the [user]!</span>")
gibs(M.loc)
user.adjustBruteLoss(-15)
user.adjustFireLoss(-15)
..()
..()
/spell/targeted/raise_dead
name = "Raise Dead"
@@ -139,16 +139,17 @@
invocation_type = SpI_EMOTE
invocation = "entones an obscure chant..."
max_targets = 1
level_max = list(Sp_TOTAL = 0, Sp_SPEED = 0, Sp_POWER = 0)
hud_state = "wiz_lich"
/spell/targeted/lichdom/cast(mob/target,var/mob/living/carbon/human/user as mob)
if(isskeleton(target))
if(isskeleton(user))
user << "You have no soul or life to offer."
return
user.visible_message("<span class='cult'>\The [user]'s skin sloughs off bone, their blood boils and guts turn to dust!</span>")
new /obj/effect/gibspawner/human
gibs(user.loc)
user.verbs += /mob/living/carbon/proc/immortality
user.set_species("Skeleton")
user.unEquip(user.wear_suit)
@@ -23,6 +23,7 @@
amt_stunned = 3
amt_dam_fire = 10
cast_prox_range = 0
/spell/targeted/projectile/magic_missile/prox_cast(var/list/targets, atom/spell_holder)
spell_holder.visible_message("<span class='danger'>\The [spell_holder] pops with a flash!</span>")
+13 -5
View File
@@ -24,6 +24,10 @@
if(M.stat == DEAD)
user << "[name] can only transform living targets."
continue
if(M.buckled)
M.buckled.unbuckle_mob()
var/new_mob = pick(possible_transformations)
var/mob/living/trans = new new_mob(get_turf(M))
@@ -76,7 +80,7 @@
feedback = "BP"
possible_transformations = list(/mob/living/simple_animal/lizard,/mob/living/simple_animal/mouse,/mob/living/simple_animal/corgi)
share_damage = 0
invocation = "Yo'balada!"
invocation_type = SpI_SHOUT
spell_flags = NEEDSCLOTHES | SELECTABLE
@@ -86,6 +90,8 @@
level_max = list(Sp_TOTAL = 2, Sp_SPEED = 2, Sp_POWER = 2)
newVars = list("health" = 50, "maxHealth" = 50)
hud_state = "wiz_poly"
@@ -98,13 +104,15 @@
return "Your target will now stay in their polymorphed form for [duration/10] seconds."
/spell/targeted/shapeshift/avian
name = "Avian Form"
name = "Polymorph"
desc = "This spell transforms the wizard into the common parrot."
feedback = "AV"
possible_transformations = list(/mob/living/simple_animal/parrot)
invocation = "Poli'crakata!"
invocation_type = SpI_SHOUT
drop_items = 0
share_damage = 0
spell_flags = INCLUDEUSER
range = -1
duration = 150
@@ -143,9 +151,9 @@
return "You will now stay corrupted for [duration/10] seconds."
if(2)
newVars = list("name" = "\proper corruption incarnate",
"melee_damage_upper" = 25,
"melee_damage_upper" = 35,
"resistance" = 6,
"health" = 125,
"maxHealth" = 125)
"health" = 250,
"maxHealth" = 250)
duration = 0
return "You revel in the corruption. There is no turning back."