Merge branch 'master' into upstream-merge-29747
This commit is contained in:
@@ -525,7 +525,7 @@ AI MODULES
|
||||
laws[1] = generate_ion_law()
|
||||
to_chat(user, "<span class='notice'>You press the button on [src].</span>")
|
||||
playsound(user, 'sound/machines/click.ogg', 20, 1)
|
||||
src.loc.visible_message("<span class='warning'>[bicon(src)] [laws[1]]</span>")
|
||||
src.loc.visible_message("<span class='warning'>[icon2html(src, viewers(loc))] [laws[1]]</span>")
|
||||
|
||||
/******************** Mother Drone ******************/
|
||||
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
update_label()
|
||||
|
||||
/obj/item/weapon/card/id/attack_self(mob/user)
|
||||
user.visible_message("<span class='notice'>[user] shows you: [bicon(src)] [src.name].</span>", \
|
||||
user.visible_message("<span class='notice'>[user] shows you: [icon2html(src, viewers(user))] [src.name].</span>", \
|
||||
"<span class='notice'>You show \the [src.name].</span>")
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
var/create_full = FALSE
|
||||
var/create_with_tank = FALSE
|
||||
var/igniter_type = /obj/item/device/assembly/igniter
|
||||
trigger_guard = TRIGGER_GUARD_NORMAL
|
||||
|
||||
/obj/item/weapon/flamethrower/Destroy()
|
||||
if(weldtool)
|
||||
@@ -69,12 +70,7 @@
|
||||
if(flag)
|
||||
return // too close
|
||||
if(ishuman(user))
|
||||
var/mob/living/carbon/human/H = user
|
||||
if(H.dna.check_mutation(HULK))
|
||||
to_chat(user, "<span class='warning'>Your meaty finger is much too large for the trigger guard!</span>")
|
||||
return
|
||||
if(NOGUNS in H.dna.species.species_traits)
|
||||
to_chat(user, "<span class='warning'>Your fingers don't fit in the trigger guard!</span>")
|
||||
if(!can_trigger_gun(user))
|
||||
return
|
||||
if(user && user.get_active_held_item() == src) // Make sure our user is still holding us
|
||||
var/turf/target_turf = get_turf(target)
|
||||
|
||||
@@ -90,8 +90,8 @@
|
||||
desc = "Looks like some cables tied together. Could be used to tie something up."
|
||||
icon_state = "cuff_red"
|
||||
item_state = "coil_red"
|
||||
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
|
||||
lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi'
|
||||
materials = list(MAT_METAL=150, MAT_GLASS=75)
|
||||
origin_tech = "engineering=2"
|
||||
breakouttime = 300 //Deciseconds = 30s
|
||||
@@ -145,9 +145,7 @@
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/cable/white
|
||||
icon_state = "cuff_white"
|
||||
item_state = "cuff_white"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
|
||||
item_state = "coil_white"
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/alien
|
||||
icon_state = "handcuffAlien"
|
||||
@@ -212,7 +210,6 @@
|
||||
name = "zipties"
|
||||
desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use."
|
||||
icon_state = "cuff_white"
|
||||
item_state = "cuff_white"
|
||||
lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi'
|
||||
materials = list()
|
||||
@@ -222,6 +219,7 @@
|
||||
/obj/item/weapon/restraints/handcuffs/cable/zipties/used
|
||||
desc = "A pair of broken zipties."
|
||||
icon_state = "cuff_white_used"
|
||||
item_state = "cuff_white"
|
||||
|
||||
/obj/item/weapon/restraints/handcuffs/cable/zipties/used/attack()
|
||||
return
|
||||
|
||||
@@ -20,12 +20,14 @@
|
||||
var/prev_bloodthirst = HIS_GRACE_SATIATED
|
||||
var/force_bonus = 0
|
||||
|
||||
/obj/item/weapon/his_grace/New()
|
||||
..()
|
||||
/obj/item/weapon/his_grace/Initialize()
|
||||
. = ..()
|
||||
START_PROCESSING(SSprocessing, src)
|
||||
GLOB.poi_list += src
|
||||
|
||||
/obj/item/weapon/his_grace/Destroy()
|
||||
STOP_PROCESSING(SSprocessing, src)
|
||||
GLOB.poi_list -= src
|
||||
for(var/mob/living/L in src)
|
||||
L.forceMove(get_turf(src))
|
||||
return ..()
|
||||
|
||||
@@ -320,6 +320,8 @@
|
||||
desc = "Particularly twisted dieties grant gifts of dubious value."
|
||||
icon_state = "arm_blade"
|
||||
item_state = "arm_blade"
|
||||
lefthand_file = 'icons/mob/inhands/antag/changeling_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/antag/changeling_righthand.dmi'
|
||||
flags = ABSTRACT | NODROP
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
sharpness = IS_SHARP
|
||||
|
||||
@@ -209,8 +209,8 @@
|
||||
origin_tech = "combat=7;materials=6"
|
||||
force_string = "INFINITE"
|
||||
|
||||
/obj/item/weapon/melee/supermatter_sword/New()
|
||||
..()
|
||||
/obj/item/weapon/melee/supermatter_sword/Initialize()
|
||||
. = ..()
|
||||
shard = new /obj/machinery/power/supermatter_shard(src)
|
||||
qdel(shard.countdown)
|
||||
shard.countdown = null
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
var/fire_mode = PCANNON_FIREALL
|
||||
var/automatic = FALSE
|
||||
var/clumsyCheck = TRUE
|
||||
trigger_guard = TRIGGER_GUARD_NORMAL
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/CanItemAutoclick()
|
||||
return automatic
|
||||
@@ -37,10 +38,10 @@
|
||||
out += "<span class='notice'>You'll need to get closer to see any more.</span>"
|
||||
return
|
||||
for(var/obj/item/I in loadedItems)
|
||||
out += "<span class='info'>[bicon(I)] It has \the [I] loaded.</span>"
|
||||
out += "<span class='info'>[icon2html(I, user)] It has \the [I] loaded.</span>"
|
||||
CHECK_TICK
|
||||
if(tank)
|
||||
out += "<span class='notice'>[bicon(tank)] It has \the [tank] mounted onto it.</span>"
|
||||
out += "<span class='notice'>[icon2html(tank, user)] It has \the [tank] mounted onto it.</span>"
|
||||
to_chat(user, out.Join("<br>"))
|
||||
|
||||
/obj/item/weapon/pneumatic_cannon/attackby(obj/item/weapon/W, mob/user, params)
|
||||
@@ -108,11 +109,7 @@
|
||||
if(!istype(user) && !target)
|
||||
return
|
||||
var/discharge = 0
|
||||
if(user.dna.check_mutation(HULK))
|
||||
to_chat(user, "<span class='warning'>Your meaty finger is much too large for the trigger guard!</span>")
|
||||
return
|
||||
if(NOGUNS in user.dna.species.species_traits)
|
||||
to_chat(user, "<span class='warning'>Your fingers don't fit in the trigger guard!</span>")
|
||||
if(!can_trigger_gun(user))
|
||||
return
|
||||
if(!loadedItems || !loadedWeightClass)
|
||||
to_chat(user, "<span class='warning'>\The [src] has nothing loaded.</span>")
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
to_chat(user, "<span class='notice'>You'll need to get closer to see any more.</span>")
|
||||
return
|
||||
if(tank)
|
||||
to_chat(user, "<span class='notice'>[bicon(tank)] It has \the [tank] mounted onto it.</span>")
|
||||
to_chat(user, "<span class='notice'>[icon2html(tank, user)] It has \the [tank] mounted onto it.</span>")
|
||||
|
||||
|
||||
/obj/item/weapon/melee/powerfist/attackby(obj/item/weapon/W, mob/user, params)
|
||||
|
||||
@@ -12,31 +12,31 @@
|
||||
|
||||
/obj/item/weapon/sharpener/attackby(obj/item/I, mob/user, params)
|
||||
if(used)
|
||||
to_chat(user, "<span class='notice'>The sharpening block is too worn to use again.</span>")
|
||||
to_chat(user, "<span class='warning'>The sharpening block is too worn to use again!</span>")
|
||||
return
|
||||
if(I.force >= max || I.throwforce >= max)//no esword sharpening
|
||||
to_chat(user, "<span class='notice'>[I] is much too powerful to sharpen further.</span>")
|
||||
to_chat(user, "<span class='warning'>[I] is much too powerful to sharpen further!</span>")
|
||||
return
|
||||
if(requires_sharpness && !I.sharpness)
|
||||
to_chat(user, "<span class='notice'>You can only sharpen items that are already sharp, such as knives.</span>")
|
||||
to_chat(user, "<span class='warning'>You can only sharpen items that are already sharp, such as knives!</span>")
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/melee/transforming/energy))
|
||||
to_chat(user, "<span class='notice'>You don't think \the [I] will be the thing getting modified if you use it on \the [src].</span>")
|
||||
to_chat(user, "<span class='warning'>You don't think \the [I] will be the thing getting modified if you use it on \the [src]!</span>")
|
||||
return
|
||||
if(istype(I, /obj/item/weapon/twohanded))//some twohanded items should still be sharpenable, but handle force differently. therefore i need this stuff
|
||||
var/obj/item/weapon/twohanded/TH = I
|
||||
if(TH.force_wielded >= max)
|
||||
to_chat(user, "<span class='notice'>[TH] is much too powerful to sharpen further.</span>")
|
||||
to_chat(user, "<span class='warning'>[TH] is much too powerful to sharpen further!</span>")
|
||||
return
|
||||
if(TH.wielded)
|
||||
to_chat(user, "<span class='notice'>[TH] must be unwielded before it can be sharpened.</span>")
|
||||
to_chat(user, "<span class='warning'>[TH] must be unwielded before it can be sharpened!</span>")
|
||||
return
|
||||
if(TH.force_wielded > initial(TH.force_wielded))
|
||||
to_chat(user, "<span class='notice'>[TH] has already been refined before. It cannot be sharpened further.</span>")
|
||||
to_chat(user, "<span class='warning'>[TH] has already been refined before. It cannot be sharpened further!</span>")
|
||||
return
|
||||
TH.force_wielded = Clamp(TH.force_wielded + increment, 0, max)//wieldforce is increased since normal force wont stay
|
||||
if(I.force > initial(I.force))
|
||||
to_chat(user, "<span class='notice'>[I] has already been refined before. It cannot be sharpened further.</span>")
|
||||
to_chat(user, "<span class='warning'>[I] has already been refined before. It cannot be sharpened further!</span>")
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] sharpens [I] with [src]!</span>", "<span class='notice'>You sharpen [I], making it much more deadly than before.</span>")
|
||||
I.sharpness = IS_SHARP_ACCURATE
|
||||
@@ -46,6 +46,7 @@
|
||||
name = "worn out [name]"
|
||||
desc = "[desc] At least, it used to."
|
||||
used = 1
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/sharpener/super
|
||||
name = "super whetstone"
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/obj/item/weapon
|
||||
var/trigger_guard = TRIGGER_GUARD_NONE
|
||||
|
||||
/obj/item/weapon/banhammer
|
||||
desc = "A banhammer"
|
||||
@@ -77,8 +78,8 @@
|
||||
var/notches = 0 //HOW MANY PEOPLE HAVE BEEN SLAIN WITH THIS BLADE
|
||||
var/obj/item/weapon/disk/nuclear/nuke_disk //OUR STORED NUKE DISK
|
||||
|
||||
/obj/item/weapon/claymore/highlander/New()
|
||||
..()
|
||||
/obj/item/weapon/claymore/highlander/Initialize()
|
||||
. = ..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/weapon/claymore/highlander/Destroy()
|
||||
@@ -540,7 +541,7 @@
|
||||
return 1
|
||||
|
||||
/obj/item/weapon/melee/flyswatter
|
||||
name = "Flyswatter"
|
||||
name = "flyswatter"
|
||||
desc = "Useful for killing insects of all sizes."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "flyswatter"
|
||||
@@ -555,8 +556,8 @@
|
||||
//Things in this list will be instantly splatted. Flyman weakness is handled in the flyman species weakness proc.
|
||||
var/list/strong_against
|
||||
|
||||
/obj/item/weapon/melee/flyswatter/New()
|
||||
..()
|
||||
/obj/item/weapon/melee/flyswatter/Initialize()
|
||||
. = ..()
|
||||
strong_against = typecacheof(list(
|
||||
/mob/living/simple_animal/hostile/poison/bees/,
|
||||
/mob/living/simple_animal/butterfly,
|
||||
@@ -584,3 +585,8 @@
|
||||
throwforce = 0
|
||||
flags = DROPDEL | ABSTRACT
|
||||
attack_verb = list("bopped")
|
||||
|
||||
/obj/item/weapon/proc/can_trigger_gun(mob/living/user)
|
||||
if(!user.can_use_guns(src))
|
||||
return FALSE
|
||||
return TRUE
|
||||
Reference in New Issue
Block a user