Overhauls and 2/28 sync (#244)
* map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures * lazy fix for bleeding edgy (#252) * map tweaks/shuttle engines * helpers and defines * global/onclick * controllers and datums * mapping * game folder * some other stuff * some modules * modules that aren't mobs * some mob stuff * new player stuff * mob living * silicon stuff * simple animal things * carbon/ayylmao * update_icons * carbon/human * sounds and tools * icons and stuff * hippie grinder changes + tgui * kitchen.dmi * compile issues fixed * mapfix * Mapfixes 2.0 * mapedit2.0 * mapmerger pls * Revert "mapedit2.0" This reverts commit 74139a3cacea10df7aafca06c0a10bd3daf3a481. * clean up vore folder + 2 hotfixes * admin ticket refinement * Blob tweaks and LAZYADD * LAZYADD IS LAZY * Magic strings purged * DEFINES NEED HIGHER PRIORITIES * Only a sleepless idiot deals in absolute TRUE|FALSE * u h g * progress bar fix * reverts ticket logs * there's always that one guy * fixes and stuff * 2/27 fixes * game folder stuff * stats * some modules again * clothing stuff gets vg clothing out of the main files * everything not mobs again * mob stuff * maps, tgui, sql stuff * icons * additional fixes and compile errors * don't need this anymore * Oh right this isn't needed anymore * maint bar re-added * that doesn't need to be here * stupid events * wtfeven * probably makes Travis happy * don't care to fix the grinder atm * fixes vending sprites, changes turret * lethal, not lethals * overylays are finicky creatures
This commit is contained in:
@@ -260,17 +260,11 @@
|
||||
/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/New()
|
||||
..()
|
||||
update_icon()
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/proc/update_magazine()
|
||||
if(magazine)
|
||||
src.overlays = 0
|
||||
add_overlay("[magazine.icon_state]")
|
||||
return
|
||||
|
||||
/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/update_icon()
|
||||
src.overlays = 0
|
||||
update_magazine()
|
||||
if(magazine)
|
||||
cut_overlays()
|
||||
add_overlay("[magazine.icon_state]")
|
||||
icon_state = "bulldog[chambered ? "" : "-e"]"
|
||||
|
||||
/obj/item/weapon/gun/ballistic/automatic/shotgun/bulldog/afterattack()
|
||||
@@ -406,5 +400,3 @@
|
||||
..()
|
||||
icon_state = "oldrifle[magazine ? "-[Ceiling(get_ammo(0)/4)*4]" : ""]"
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -190,3 +190,22 @@
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/item/projectile/energy/tesla_cannon
|
||||
name = "tesla bolt"
|
||||
icon_state = "tesla_projectile"
|
||||
impact_effect_type = /obj/effect/overlay/temp/impact_effect/blue_laser
|
||||
var/chain
|
||||
|
||||
/obj/item/projectile/energy/tesla_cannon/fire(setAngle)
|
||||
if(firer)
|
||||
chain = firer.Beam(src, icon_state = "lightning[rand(1, 12)]", time = INFINITY, maxdistance = INFINITY)
|
||||
..()
|
||||
|
||||
/obj/item/projectile/energy/tesla_cannon/on_hit(atom/target)
|
||||
. = ..()
|
||||
tesla_zap(src, 3, 10000, explosive = FALSE, stun_mobs = FALSE)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/projectile/energy/tesla_cannon/Destroy()
|
||||
qdel(chain)
|
||||
return ..()
|
||||
|
||||
@@ -155,8 +155,8 @@
|
||||
new_mob.job = "Cyborg"
|
||||
var/mob/living/silicon/robot/Robot = new_mob
|
||||
Robot.mmi.transfer_identity(M) //Does not transfer key/client.
|
||||
Robot.clear_inherent_laws()
|
||||
Robot.clear_zeroth_law(0)
|
||||
Robot.clear_inherent_laws(0)
|
||||
Robot.clear_zeroth_law(0, 0)
|
||||
Robot.connected_ai = null
|
||||
if("slime")
|
||||
new_mob = new /mob/living/simple_animal/slime/random(M.loc)
|
||||
@@ -291,37 +291,42 @@
|
||||
nodamage = 1
|
||||
|
||||
/obj/item/projectile/magic/animate/on_hit(atom/target, blocked = 0)
|
||||
target.animate_atom_living(firer)
|
||||
..()
|
||||
if((istype(target, /obj/item) || istype(target, /obj/structure)) && !is_type_in_list(target, protected_objects))
|
||||
if(istype(target, /obj/structure/statue/petrified))
|
||||
var/obj/structure/statue/petrified/P = target
|
||||
|
||||
/atom/proc/animate_atom_living(var/mob/living/owner = null)
|
||||
if((istype(src, /obj/item) || istype(src, /obj/structure)) && !is_type_in_list(src, protected_objects))
|
||||
if(istype(src, /obj/structure/statue/petrified))
|
||||
var/obj/structure/statue/petrified/P = src
|
||||
if(P.petrified_mob)
|
||||
var/mob/living/L = P.petrified_mob
|
||||
var/mob/living/simple_animal/hostile/statue/S = new (P.loc, firer)
|
||||
var/mob/living/simple_animal/hostile/statue/S = new(P.loc, owner)
|
||||
S.name = "statue of [L.name]"
|
||||
S.faction = list("\ref[firer]")
|
||||
if(owner)
|
||||
S.faction = list("\ref[owner]")
|
||||
S.icon = P.icon
|
||||
S.icon_state = P.icon_state
|
||||
S.overlays = P.overlays
|
||||
S.copy_overlays(P, TRUE)
|
||||
S.color = P.color
|
||||
S.atom_colours = P.atom_colours.Copy()
|
||||
if(L.mind)
|
||||
L.mind.transfer_to(S)
|
||||
S << "<span class='userdanger'>You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [firer.name], your creator.</span>"
|
||||
if(owner)
|
||||
S << "<span class='userdanger'>You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [owner], your creator.</span>"
|
||||
P.loc = S
|
||||
qdel(src)
|
||||
return
|
||||
else
|
||||
var/obj/O = target
|
||||
var/obj/O = src
|
||||
if(istype(O, /obj/item/weapon/gun))
|
||||
new /mob/living/simple_animal/hostile/mimic/copy/ranged(O.loc, O, firer)
|
||||
new /mob/living/simple_animal/hostile/mimic/copy/ranged(loc, src, owner)
|
||||
else
|
||||
new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer)
|
||||
new /mob/living/simple_animal/hostile/mimic/copy(loc, src, owner)
|
||||
|
||||
else if(istype(target, /mob/living/simple_animal/hostile/mimic/copy))
|
||||
else if(istype(src, /mob/living/simple_animal/hostile/mimic/copy))
|
||||
// Change our allegiance!
|
||||
var/mob/living/simple_animal/hostile/mimic/copy/C = target
|
||||
C.ChangeOwner(firer)
|
||||
var/mob/living/simple_animal/hostile/mimic/copy/C = src
|
||||
if(owner)
|
||||
C.ChangeOwner(owner)
|
||||
|
||||
/obj/item/projectile/magic/spellblade
|
||||
name = "blade energy"
|
||||
|
||||
@@ -234,6 +234,12 @@
|
||||
damage = 10
|
||||
range = 6
|
||||
|
||||
/obj/item/projectile/plasma/turret
|
||||
//Between normal and advanced for damage, made a beam so not the turret does not destroy glass
|
||||
name = "plasma beam"
|
||||
damage = 6
|
||||
pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE
|
||||
|
||||
|
||||
/obj/item/projectile/gravityrepulse
|
||||
name = "repulsion bolt"
|
||||
@@ -246,6 +252,7 @@
|
||||
color = "#33CCFF"
|
||||
var/turf/T
|
||||
var/power = 4
|
||||
var/list/thrown_items = list()
|
||||
|
||||
/obj/item/projectile/gravityrepulse/New(var/obj/item/ammo_casing/energy/gravityrepulse/C)
|
||||
..()
|
||||
@@ -256,10 +263,11 @@
|
||||
. = ..()
|
||||
T = get_turf(src)
|
||||
for(var/atom/movable/A in range(T, power))
|
||||
if(A == src || (firer && A == src.firer) || A.anchored)
|
||||
if(A == src || (firer && A == src.firer) || A.anchored || thrown_items[A])
|
||||
continue
|
||||
var/throwtarget = get_edge_target_turf(src, get_dir(src, get_step_away(A, src)))
|
||||
A.throw_at(throwtarget,power+1,1)
|
||||
thrown_items[A] = A
|
||||
for(var/turf/F in range(T,power))
|
||||
new /obj/effect/overlay/temp/gravpush(F)
|
||||
|
||||
@@ -274,6 +282,7 @@
|
||||
color = "#FF6600"
|
||||
var/turf/T
|
||||
var/power = 4
|
||||
var/list/thrown_items = list()
|
||||
|
||||
/obj/item/projectile/gravityattract/New(var/obj/item/ammo_casing/energy/gravityattract/C)
|
||||
..()
|
||||
@@ -284,9 +293,10 @@
|
||||
. = ..()
|
||||
T = get_turf(src)
|
||||
for(var/atom/movable/A in range(T, power))
|
||||
if(A == src || (firer && A == src.firer) || A.anchored)
|
||||
if(A == src || (firer && A == src.firer) || A.anchored || thrown_items[A])
|
||||
continue
|
||||
A.throw_at(T, power+1, 1)
|
||||
thrown_items[A] = A
|
||||
for(var/turf/F in range(T,power))
|
||||
new /obj/effect/overlay/temp/gravpush(F)
|
||||
|
||||
@@ -301,6 +311,7 @@
|
||||
color = "#101010"
|
||||
var/turf/T
|
||||
var/power = 4
|
||||
var/list/thrown_items = list()
|
||||
|
||||
/obj/item/projectile/gravitychaos/New(var/obj/item/ammo_casing/energy/gravitychaos/C)
|
||||
..()
|
||||
@@ -311,9 +322,10 @@
|
||||
. = ..()
|
||||
T = get_turf(src)
|
||||
for(var/atom/movable/A in range(T, power))
|
||||
if(A == src|| (firer && A == src.firer) || A.anchored)
|
||||
if(A == src|| (firer && A == src.firer) || A.anchored || thrown_items[A])
|
||||
continue
|
||||
A.throw_at(get_edge_target_turf(A, pick(cardinal)), power+1, 1)
|
||||
thrown_items[A] = A
|
||||
for(var/turf/Z in range(T,power))
|
||||
new /obj/effect/overlay/temp/gravpush(Z)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user