mk III
This commit is contained in:
@@ -235,6 +235,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
resistance_flags = FIRE_PROOF
|
||||
total_mass = TOTAL_MASS_MEDIEVAL_WEAPON
|
||||
|
||||
/obj/item/katana/lavaland
|
||||
desc = "Woefully underpowered in Lavaland."
|
||||
block_chance = 30
|
||||
force = 25 //Like a fireaxe but one handed and can block!
|
||||
|
||||
/obj/item/katana/cursed
|
||||
slot_flags = null
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
max_integrity = 200
|
||||
armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 0)
|
||||
var/state = 0
|
||||
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book) //Things allowed in the bookcase
|
||||
var/list/allowed_books = list(/obj/item/book, /obj/item/spellbook, /obj/item/storage/book, /obj/item/gun/magic/wand/book) //Things allowed in the bookcase
|
||||
|
||||
/obj/structure/bookcase/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -192,7 +192,7 @@
|
||||
desc = "Crack it open, inhale the musk of its pages, and learn something new."
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
w_class = WEIGHT_CLASS_NORMAL //upped to three because books are, y'know, pretty big. (and you could hide them inside eachother recursively forever)
|
||||
attack_verb = list("bashed", "whacked", "educated")
|
||||
resistance_flags = FLAMMABLE
|
||||
var/dat //Actual page content
|
||||
|
||||
@@ -66,6 +66,16 @@
|
||||
force = 19
|
||||
custom_materials = list(/datum/material/diamond=4000)
|
||||
|
||||
/obj/item/pickaxe/rosegold
|
||||
name = "rose gold pickaxe"
|
||||
icon_state = "rgpickaxe"
|
||||
item_state = "rgpickaxe"
|
||||
toolspeed = 0.1
|
||||
desc = "A pickaxe with a light rose gold head and some red glowing ruins. Extremely robust at cracking rock walls and digging up dirt."
|
||||
force = 19
|
||||
custom_materials = list(/datum/material/gold=4000)
|
||||
digrange = 3
|
||||
|
||||
/obj/item/pickaxe/plasteel
|
||||
name = "plasteel-tipped pickaxe"
|
||||
icon_state = "titaxe"
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
/obj/structure/closet/crate/necropolis/tendril/misc
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/magic/PopulateContents()
|
||||
var/loot = rand(1,8)
|
||||
var/loot = rand(1,10)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/soulstone/anybody(src)
|
||||
@@ -38,14 +38,20 @@
|
||||
new /obj/item/warp_cube/red(src)
|
||||
if(8)
|
||||
new /obj/item/immortality_talisman(src)
|
||||
if(9)
|
||||
new /obj/item/gun/magic/wand/book/healing(src)
|
||||
if(10)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/red(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/blue(src)
|
||||
new /obj/item/reagent_containers/glass/bottle/ichor/green(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/weapon_armor/PopulateContents()
|
||||
var/loot = rand(1,8)
|
||||
var/loot = rand(1,11)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/clothing/suit/space/hardsuit/cult(src)
|
||||
if(2)
|
||||
new /obj/item/katana/cursed(src)
|
||||
new /obj/item/katana/lavaland(src)
|
||||
if(3)
|
||||
if(prob(50))
|
||||
new /obj/item/disk/design_disk/modkit_disc/resonator_blast(src)
|
||||
@@ -62,9 +68,15 @@
|
||||
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/old(src)
|
||||
if(8)
|
||||
new /obj/item/grenade/clusterbuster/inferno(src)
|
||||
if(9)
|
||||
new /obj/item/gun/magic/wand/book/shock(src)
|
||||
if(10)
|
||||
new /obj/item/gun/magic/wand/book/page(src)
|
||||
if(11)
|
||||
new /obj/item/gun/magic/wand/book/spark(src)
|
||||
|
||||
/obj/structure/closet/crate/necropolis/tendril/misc/PopulateContents()
|
||||
var/loot = rand(1,8)
|
||||
var/loot = rand(1,10)
|
||||
switch(loot)
|
||||
if(1)
|
||||
new /obj/item/shared_storage/red(src)
|
||||
@@ -85,6 +97,12 @@
|
||||
new /obj/item/disk/design_disk/modkit_disc/bounty(src)
|
||||
if(8)
|
||||
new /obj/item/wisp_lantern(src)
|
||||
if(9)
|
||||
new /obj/item/pickaxe/rosegold(src)
|
||||
if(10)
|
||||
new /obj/item/bedsheet/cosmos(src)
|
||||
new /obj/item/melee/skateboard/hoverboard(src)
|
||||
|
||||
|
||||
//KA modkit design discs
|
||||
/obj/item/disk/design_disk/modkit_disc
|
||||
|
||||
@@ -43,3 +43,17 @@
|
||||
|
||||
/obj/item/ammo_casing/magic/locker
|
||||
projectile_type = /obj/item/projectile/magic/locker
|
||||
|
||||
//Spell book ammo casing
|
||||
/obj/item/ammo_casing/magic/book/book
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book
|
||||
|
||||
/obj/item/ammo_casing/magic/book/spark
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/spark
|
||||
|
||||
/obj/item/ammo_casing/magic/book/heal
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/heal
|
||||
harmful = FALSE
|
||||
|
||||
/obj/item/ammo_casing/magic/book/shock
|
||||
projectile_type = /obj/item/projectile/magic/spellcard/book/shock
|
||||
|
||||
84
code/modules/projectiles/guns/magic/spell_book.dm
Normal file
84
code/modules/projectiles/guns/magic/spell_book.dm
Normal file
@@ -0,0 +1,84 @@
|
||||
/obj/item/gun/magic/wand/book
|
||||
name = "blank spellbook"
|
||||
desc = "It's not just a book, it's a SPELL book!"
|
||||
ammo_type = /obj/item/ammo_casing/magic
|
||||
icon = 'icons/obj/library.dmi'
|
||||
icon_state = "book"
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
charges = 10 //We start with max pages
|
||||
max_charges = 10
|
||||
variable_charges = FALSE
|
||||
self_attack = FALSE
|
||||
|
||||
/obj/item/gun/magic/wand/book/examine(mob/user)
|
||||
. = ..()
|
||||
. += "Has [charges] pages\s remaining."
|
||||
|
||||
/obj/item/gun/magic/wand/book/attack(atom/target, mob/living/user)
|
||||
if(target == user)
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/item/gun/magic/wand/book/afterattack(atom/target, mob/living/user)
|
||||
if(charges == 0)
|
||||
shoot_with_empty_chamber(user)
|
||||
return
|
||||
if(target == user)
|
||||
to_chat(user, "The book has [charges] pages\s remaining.</span>")
|
||||
else
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/magic/wand/book/attackby(obj/item/S, mob/living/user, params)
|
||||
if(!istype(S, /obj/item/paper))
|
||||
return
|
||||
if(charges < max_charges)
|
||||
charges++
|
||||
recharge_newshot()
|
||||
to_chat(user, "You add a new page to [src].</span>")
|
||||
qdel(S)
|
||||
update_icon()
|
||||
process()
|
||||
else
|
||||
to_chat(user, "The [src] has no more room for pages!</span>")
|
||||
return
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - SPARK//
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/spark
|
||||
name = "Spell Book of Spark"
|
||||
desc = "A spell book that fires burn pages to set the target ablaze!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/spark
|
||||
icon_state = "spellbook_spark"
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - PAGE///
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/page
|
||||
name = "Spell Book of Throw"
|
||||
desc = "A spell book that throws pages at its target!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/book
|
||||
icon_state = "spellbook_page"
|
||||
|
||||
//////////////////////
|
||||
//Spell Book - SHOCK//
|
||||
//////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/shock
|
||||
name = "Spell Book of Shock"
|
||||
desc = "A spell book that uses its pages to capture energy in the air and send it in a bolt at its target!"
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/shock
|
||||
icon_state = "spellbook_shock"
|
||||
|
||||
////////////////////////
|
||||
//Spell Book - HEALING//
|
||||
////////////////////////
|
||||
|
||||
/obj/item/gun/magic/wand/book/healing
|
||||
name = "Spell Book of Mending"
|
||||
desc = "A spell book that uses its pages to heal and repair the target! The back of the book lists what it works on, and it seems to only be of flesh and of metal beings..."
|
||||
ammo_type = /obj/item/ammo_casing/magic/book/heal
|
||||
icon_state = "spellbook_healing"
|
||||
@@ -8,6 +8,7 @@
|
||||
can_charge = 0
|
||||
max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths)
|
||||
var/variable_charges = 1
|
||||
var/self_attack = TRUE
|
||||
|
||||
/obj/item/gun/magic/wand/Initialize()
|
||||
if(prob(75) && variable_charges) //25% chance of listed max charges, 50% chance of 1/2 max charges, 25% chance of 1/3 max charges
|
||||
@@ -33,7 +34,7 @@
|
||||
if(!charges)
|
||||
shoot_with_empty_chamber(user)
|
||||
return
|
||||
if(target == user)
|
||||
if(target == user && self_attack == TRUE)
|
||||
if(no_den_usage)
|
||||
var/area/A = get_area(user)
|
||||
if(istype(A, /area/wizard_station))
|
||||
|
||||
@@ -4,3 +4,60 @@
|
||||
icon_state = "spellcard"
|
||||
damage_type = BURN
|
||||
damage = 2
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book
|
||||
nodamage = FALSE
|
||||
name = "enchanted page"
|
||||
desc = "A piece of paper enchanted to give it extreme durability and stiffness, along with a very hot burn to anyone unfortunate enough to get hit by a charged one."
|
||||
icon_state = "spellcard"
|
||||
damage_type = BURN
|
||||
damage = 12
|
||||
flag = "magic"
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/spark
|
||||
damage = 4
|
||||
var/fire_stacks = 4
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/spark/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
var/mob/living/carbon/M = target
|
||||
if(iscarbon(target))
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
return BULLET_ACT_BLOCK
|
||||
else
|
||||
M.adjust_fire_stacks(fire_stacks)
|
||||
M.IgniteMob()
|
||||
return
|
||||
else
|
||||
damage = 20 //If we are a simplemob we deal 5x damage
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/shock
|
||||
damage = 0
|
||||
stamina = 11
|
||||
stutter = 5
|
||||
jitter = 20
|
||||
knockdown = 10
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/heal
|
||||
damage = 0
|
||||
|
||||
/obj/item/projectile/magic/spellcard/book/heal/on_hit(atom/target, blocked = FALSE)
|
||||
. = ..()
|
||||
var/mob/living/carbon/M = target
|
||||
if(iscarbon(target))
|
||||
if(M.anti_magic_check())
|
||||
M.visible_message("<span class='warning'>[src] vanishes on contact with [target]!</span>")
|
||||
return BULLET_ACT_BLOCK
|
||||
else
|
||||
M.visible_message("<span class='warning'>[src] mends [target]!</span>")
|
||||
M.adjustBruteLoss(-5) //HEALS
|
||||
M.adjustOxyLoss(-5)
|
||||
M.adjustBruteLoss(-5)
|
||||
M.adjustFireLoss(-5)
|
||||
M.adjustToxLoss(-5, TRUE) //heals TOXINLOVERs
|
||||
M.adjustCloneLoss(-5)
|
||||
M.adjustStaminaLoss(-5)
|
||||
return
|
||||
else
|
||||
return
|
||||
|
||||
@@ -2195,6 +2195,58 @@
|
||||
color = "#f7685e"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 0.25
|
||||
|
||||
/datum/reagent/red_ichor
|
||||
name = "Red Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown red liquid, linked to healing of most moral wounds."
|
||||
color = "#c10000"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/red_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustBruteLoss(-50)
|
||||
M.adjustOxyLoss(-50)
|
||||
M.adjustBruteLoss(-50)
|
||||
M.adjustFireLoss(-50)
|
||||
M.adjustToxLoss(-50, TRUE) //heals TOXINLOVERs
|
||||
M.adjustCloneLoss(-50)
|
||||
M.adjustStaminaLoss(-50)
|
||||
..()
|
||||
|
||||
/datum/reagent/green_ichor
|
||||
name = "Green Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown green liquid, linked to healing of most internal wounds."
|
||||
color = "#158c00"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/green_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_HEART, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_LIVER, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EARS, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_STOMACH, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_TONGUE, -100)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_EYES, -100)
|
||||
..()
|
||||
|
||||
/datum/reagent/blue_ichor
|
||||
name = "Blue Ichor"
|
||||
can_synth = FALSE
|
||||
description = "A unknown blue liquid, linked to healing the mind."
|
||||
color = "#0914e0"
|
||||
metabolization_rate = REAGENTS_METABOLISM * 2.5
|
||||
|
||||
/datum/reagent/blue_ichor/on_mob_life(mob/living/carbon/M)
|
||||
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, -100)
|
||||
M.cure_all_traumas(TRAUMA_RESILIENCE_MAGIC)
|
||||
M.hallucination = 0
|
||||
M.dizziness = 0
|
||||
M.disgust = 0
|
||||
M.drowsyness = 0
|
||||
M.stuttering = 0
|
||||
M.confused = 0
|
||||
M.SetSleeping(0, 0)
|
||||
..()
|
||||
|
||||
//body bluids
|
||||
/datum/reagent/consumable/semen
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
possible_transfer_amounts = list(5,10,15,25,30)
|
||||
volume = 30
|
||||
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/Initialize()
|
||||
. = ..()
|
||||
if(!icon_state)
|
||||
@@ -412,6 +411,23 @@
|
||||
name = "bromine bottle"
|
||||
list_reagents = list(/datum/reagent/bromine = 30)
|
||||
|
||||
//Ichors
|
||||
/obj/item/reagent_containers/glass/bottle/ichor
|
||||
possible_transfer_amounts = list(1)
|
||||
volume = 1
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/red
|
||||
name = "healing potion"
|
||||
list_reagents = list(/datum/reagent/red_ichor = 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/blue
|
||||
name = "blue potion"
|
||||
list_reagents = list(/datum/reagent/blue_ichor = 1)
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/ichor/green
|
||||
name = "green potion"
|
||||
list_reagents = list(/datum/reagent/green_ichor = 1)
|
||||
|
||||
//Lewd Stuff
|
||||
|
||||
/obj/item/reagent_containers/glass/bottle/crocin
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 37 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 64 KiB |
@@ -2868,6 +2868,7 @@
|
||||
#include "code\modules\projectiles\guns\energy\pulse.dm"
|
||||
#include "code\modules\projectiles\guns\energy\special.dm"
|
||||
#include "code\modules\projectiles\guns\energy\stun.dm"
|
||||
#include "code\modules\projectiles\guns\magic\spell_book.dm"
|
||||
#include "code\modules\projectiles\guns\magic\staff.dm"
|
||||
#include "code\modules\projectiles\guns\magic\wand.dm"
|
||||
#include "code\modules\projectiles\guns\misc\beam_rifle.dm"
|
||||
|
||||
Reference in New Issue
Block a user