This commit is contained in:
TrilbySpaceClone
2020-06-05 22:43:49 -04:00
parent 937731d77d
commit 8b406df1ec
13 changed files with 266 additions and 8 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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

View 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"

View File

@@ -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))

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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"