diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index 375a5129c4a..349638b93af 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -248,15 +248,23 @@ H.spell_list += new /obj/effect/proc_holder/spell/targeted/inflict_handler/flesh_to_stone(H) temp = "You have learned flesh to stone." if("summonguns") - feedback_add_details("wizard_spell_learned","SG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.rightandwrong(0) - max_uses-- - temp = "You have cast summon guns." + if(max_uses < 5) + temp = "You need 5 slots for this spell" + return + else + feedback_add_details("wizard_spell_learned","SG") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells + H.rightandwrong(0) + max_uses-=5 + temp = "You have cast summon guns." if("summonmagic") - feedback_add_details("wizard_spell_learned","SM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells - H.rightandwrong(1) - max_uses-- - temp = "You have cast summon magic." + if(max_uses < 5) + temp = "You need 5 slots for this spell" + return + else + feedback_add_details("wizard_spell_learned","SM") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells + H.rightandwrong(1) + max_uses-=5 + temp = "You have cast summon magic." if("staffchange") feedback_add_details("wizard_spell_learned","ST") //please do not change the abbreviation to keep data processing consistent. Add a unique id to any new spells new /obj/item/weapon/gun/magic/staff/change(get_turf(H)) diff --git a/code/modules/projectiles/guns/magic/staff.dm b/code/modules/projectiles/guns/magic/staff.dm index dd38641e184..ad0671867fc 100644 --- a/code/modules/projectiles/guns/magic/staff.dm +++ b/code/modules/projectiles/guns/magic/staff.dm @@ -1,5 +1,15 @@ obj/item/weapon/gun/magic/staff/ slot_flags = SLOT_BACK + max_charges = 100 //100, 50, 50, 34 (max charge distribution by 25%ths) + var/variable_charges = 1 + +/obj/item/weapon/gun/magic/staff/New() + 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 + if(prob(33)) + max_charges = Ceiling(max_charges / 3) + else + max_charges = Ceiling(max_charges / 2) + ..() obj/item/weapon/gun/magic/staff/change name = "staff of change" @@ -7,6 +17,7 @@ obj/item/weapon/gun/magic/staff/change projectile_type = "/obj/item/projectile/magic/change" icon_state = "staffofchange" item_state = "staffofchange" + max_charges = 8 //8, 4, 4, 3 obj/item/weapon/gun/magic/staff/animate name = "staff of animation" @@ -14,6 +25,7 @@ obj/item/weapon/gun/magic/staff/animate projectile_type = "/obj/item/projectile/magic/animate" icon_state = "staffofanimation" item_state = "staffofanimation" + max_charges = 8 //8, 4, 4, 3 obj/item/weapon/gun/magic/staff/healing name = "staff of healing" @@ -21,3 +33,4 @@ obj/item/weapon/gun/magic/staff/healing projectile_type = "/obj/item/projectile/magic/resurrection" icon_state = "staffofhealing" item_state = "staffofhealing" + max_charges = 8 //8, 4, 4, 3