Wizard Battlemage Armor (#12388)

This commit is contained in:
Fox McCloud
2019-09-24 15:42:47 -07:00
committed by variableundefined
parent 1db3ab3d4b
commit 652920ae3c
11 changed files with 113 additions and 61 deletions
+1 -1
View File
@@ -4443,7 +4443,7 @@
"mp" = (
/obj/effect/decal/cleanable/blood/splatter,
/obj/structure/rack,
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
/turf/unsimulated/floor{
tag = "icon-cultdamage";
icon_state = "cultdamage"
+1 -1
View File
@@ -238,7 +238,7 @@
/turf/simulated/floor/wood,
/area/awaymission/academy/headmaster)
"aL" = (
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
/obj/structure/table/wood,
/obj/item/stack/sheet/mineral/silver{
amount = 20
+1 -1
View File
@@ -9053,7 +9053,7 @@
pixel_x = -3;
pixel_y = 3
},
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
/obj/item/clothing/suit/space/santa{
pixel_x = 3;
pixel_y = -3
+2 -2
View File
@@ -810,7 +810,7 @@
/datum/outfit/admin/hardsuit/wizard
name = "Wizard Hardsuit"
suit = /obj/item/clothing/suit/space/hardsuit/wizard
suit = /obj/item/clothing/suit/space/hardsuit/shielded/wizard
shoes = /obj/item/clothing/shoes/magboots
/datum/outfit/admin/hardsuit/medical
@@ -1100,7 +1100,7 @@
l_hand = null
backpack_contents = list(
/obj/item/storage/box/engineer = 1,
/obj/item/clothing/suit/space/hardsuit/wizard = 1,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard = 1,
/obj/item/clothing/shoes/magboots = 1,
/obj/item/kitchen/knife/ritual = 1,
/obj/item/clothing/suit/wizrobe/red = 1,
+2 -2
View File
@@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(summoned_magic, list(
/obj/item/gun/magic/staff/door,
/obj/item/scrying,
/obj/item/voodoo,
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
/obj/item/immortality_talisman,
/obj/item/melee/ghost_sword))
@@ -83,7 +83,7 @@ GLOBAL_LIST_INIT(summoned_special_magic, list(
GLOBAL_LIST_INIT(summoned_magic_objectives, list(
/obj/item/contract,
/obj/item/blood_contract,
/obj/item/clothing/suit/space/hardsuit/wizard,
/obj/item/clothing/suit/space/hardsuit/shielded/wizard,
/obj/item/gun/magic,
/obj/item/immortality_talisman,
/obj/item/melee/ghost_sword,
+13 -10
View File
@@ -444,18 +444,21 @@
category = "Artefacts"
//Weapons and Armors
/datum/spellbook_entry/item/armor
name = "Mastercrafted Armor Set"
desc = "An artefact suit of armor that allows you to cast spells while providing more protection against attacks and the void of space. Comes bundled with Boots of Gripping."
item_path = /obj/item/clothing/suit/space/hardsuit/wizard
log_name = "HS"
/datum/spellbook_entry/item/battlemage
name = "Battlemage Armour"
desc = "An ensorceled suit of armour, protected by a powerful shield. The shield can completely negate sixteen attacks before being permanently depleted."
item_path = /obj/item/clothing/suit/space/hardsuit/shielded/wizard
limit = 1
category = "Weapons and Armors"
log_name = "BMA"
/datum/spellbook_entry/item/armor/Buy(var/mob/living/carbon/human/user,var/obj/item/spellbook/book)
. = ..()
if(.)
new /obj/item/clothing/shoes/sandal(get_turf(user)) //In case they've lost them.
new /obj/item/clothing/gloves/color/purple(get_turf(user)) // To complete the outfit
/datum/spellbook_entry/item/battlemage_charge
name = "Battlemage Armour Charges"
desc = "A powerful defensive rune, it will grant eight additional charges to a suit of battlemage armour."
item_path = /obj/item/wizard_armour_charge
category = "Weapons and Armors"
cost = 1
log_name = "BMAC"
/datum/spellbook_entry/item/mjolnir
name = "Mjolnir"
+3
View File
@@ -579,6 +579,9 @@ BLIND // can't see anything
else
..() //This is required in order to ensure that the UI buttons for items that have alternate functions tied to UI buttons still work.
/obj/item/clothing/suit/proc/special_overlays() // Does it have special overlays when worn?
return FALSE
//Spacesuit
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
// Meaning the the suit is defined directly after the corrisponding helmet. Just like below!
+30 -42
View File
@@ -405,33 +405,6 @@
/obj/item/clothing/head/helmet/space/hardsuit/syndi/freedom/update_icon()
return
//Wizard hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/wizard
name = "gem-encrusted hardsuit helmet"
desc = "A bizarre gem-encrusted helmet that radiates magical energies."
icon_state = "hardsuit0-wiz"
item_state = "wiz_helm"
item_color = "wiz"
unacidable = TRUE //No longer shall our kind be foiled by lone chemists with spray bottles!
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
heat_protection = HEAD //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
magical = TRUE
/obj/item/clothing/suit/space/hardsuit/wizard
icon_state = "hardsuit-wiz"
name = "gem-encrusted hardsuit"
desc = "A bizarre gem-encrusted suit that radiates magical energies."
item_state = "wiz_hardsuit"
w_class = WEIGHT_CLASS_NORMAL
unacidable = TRUE
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
allowed = list(/obj/item/teleportation_scroll,/obj/item/tank)
heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
magical = TRUE
//Medical hardsuit
/obj/item/clothing/head/helmet/space/hardsuit/medical
name = "medical hardsuit helmet"
@@ -525,23 +498,24 @@
var/recharge_rate = 1 //How quickly the shield recharges once it starts charging
var/shield_state = "shield-old"
var/shield_on = "shield-old"
sprite_sheets = null
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
recharge_cooldown = world.time + recharge_delay
if(current_charges > 0)
do_sparks(2, 1, src)
owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
current_charges--
recharge_cooldown = world.time + recharge_delay
START_PROCESSING(SSobj, src)
if(recharge_rate)
START_PROCESSING(SSobj, src)
if(current_charges <= 0)
owner.visible_message("[owner]'s shield overloads!")
owner.visible_message("<span class='warning'>[owner]'s shield overloads!</span>")
shield_state = "broken"
owner.update_inv_wear_suit()
return 1
return 0
/obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
@@ -549,15 +523,18 @@
/obj/item/clothing/suit/space/hardsuit/shielded/process()
if(world.time > recharge_cooldown && current_charges < max_charges)
current_charges = Clamp((current_charges + recharge_rate), 0, max_charges)
playsound(loc, 'sound/magic/charge.ogg', 50, 1)
playsound(loc, 'sound/magic/charge.ogg', 50, TRUE)
if(current_charges == max_charges)
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
playsound(loc, 'sound/machines/ding.ogg', 50, TRUE)
STOP_PROCESSING(SSobj, src)
shield_state = "[shield_on]"
if(istype(loc, /mob/living/carbon/human))
if(ishuman(loc))
var/mob/living/carbon/human/C = loc
C.update_inv_wear_suit()
/obj/item/clothing/suit/space/hardsuit/shielded/special_overlays()
return mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01)
//////Syndicate Version
/obj/item/clothing/suit/space/hardsuit/shielded/syndi
@@ -571,14 +548,25 @@
slowdown = 0
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
jetpack = /obj/item/tank/jetpack/suit
sprite_sheets = list(
"Unathi" = 'icons/mob/species/unathi/suit.dmi',
"Tajaran" = 'icons/mob/species/tajaran/suit.dmi',
"Skrell" = 'icons/mob/species/skrell/suit.dmi',
"Vox" = 'icons/mob/species/vox/suit.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi',
"Drask" = 'icons/mob/species/drask/suit.dmi'
)
/obj/item/clothing/suit/space/hardsuit/shielded/syndi/attackby(obj/item/I, mob/user, params)
if(ismultitool(I))
if(shield_state == "broken")
to_chat(user, "<span class='warning'>You can't interface with the hardsuit's software if the shield's broken!</span>")
return
if(shield_state == "shield-red")
shield_state = "shield-old"
shield_on = "shield-old"
to_chat(user, "<span class='warning'>You roll back the hardsuit's software, changing the shield's color!</span>")
else
shield_state = "shield-red"
shield_on = "shield-red"
to_chat(user, "<span class='warning'>You update the hardsuit's hardware, changing back the shield's color to red.</span>")
user.update_inv_wear_suit()
return
return ..()
/obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
name = "blood-red hardsuit helmet"
+54 -1
View File
@@ -154,4 +154,57 @@
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
unacidable = 0
burn_state = FLAMMABLE
magical = FALSE
magical = FALSE
//Shielded Armour
/obj/item/clothing/suit/space/hardsuit/shielded/wizard
name = "battlemage armour"
desc = "Not all wizards are afraid of getting up close and personal."
icon_state = "hardsuit-wiz"
item_state = "wiz_hardsuit"
recharge_rate = 0
current_charges = 15
recharge_cooldown = INFINITY
shield_state = "shield-red"
shield_on = "shield-red"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
slowdown = 0
unacidable = TRUE
burn_state = FIRE_PROOF
magical = TRUE
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard
name = "battlemage helmet"
desc = "A suitably impressive helmet."
icon_state = "hardsuit0-wiz"
item_state = "wiz_helm"
item_color = "wiz"
min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT
max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT
armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20, fire = 100, acid = 100)
actions_types = null //No inbuilt light
unacidable = TRUE
burn_state = FIRE_PROOF
magical = TRUE
/obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard/attack_self(mob/user)
return
/obj/item/wizard_armour_charge
name = "battlemage shield charges"
desc = "A powerful rune that will increase the number of hits a suit of battlemage armour can take before failing.."
icon = 'icons/effects/effects.dmi'
icon_state = "electricity2"
/obj/item/wizard_armour_charge/afterattack(obj/item/clothing/suit/space/hardsuit/shielded/wizard/W, mob/user)
. = ..()
if(!istype(W))
to_chat(user, "<span class='warning'>The rune can only be used on battlemage armour!</span>")
return
W.current_charges += 8
to_chat(user, "<span class='notice'>You charge [W]. It can now absorb [W.current_charges] hits.</span>")
qdel(src)
@@ -1573,7 +1573,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X
threatcount += 2
//Check for dresscode violations
if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/wizard))
if(istype(head, /obj/item/clothing/head/wizard) || istype(head, /obj/item/clothing/head/helmet/space/hardsuit/shielded/wizard))
threatcount += 2
@@ -893,6 +893,11 @@ var/global/list/damage_icon_parts = list()
bloodsies.color = wear_suit.blood_color
standing.overlays += bloodsies
var/special_overlays = wear_suit.special_overlays()
if(special_overlays)
standing.overlays += special_overlays
standing.alpha = wear_suit.alpha
standing.color = wear_suit.color
overlays_standing[SUIT_LAYER] = standing