syndie laser gun + elitesyndie viscerator gun (#34681)

* viscerator gun code

* Syndie laser rifle for nuke ops, Viscerator gun for SyndieSquad, sprites by Blithering

* no map, just spawn one gun
This commit is contained in:
SonixApache
2023-07-17 18:25:23 +02:00
committed by GitHub
parent f835aaa2b0
commit 31c8a58b62
16 changed files with 42 additions and 9 deletions

View File

@@ -104,6 +104,8 @@
#define isclowngoblin(A) istype(A, /mob/living/simple_animal/hostile/retaliate/cluwne/goblin)
#define isbee(A) istype(A, /mob/living/simple_animal/bee)
#define isAI(A) istype(A, /mob/living/silicon/ai)
#define isAIEye(A) istype(A, /mob/camera/aiEye)

View File

@@ -25,7 +25,7 @@
// Classic alternate setup with a twist. Laser Rifle as a primary, but ion carbine as a backup and extra EMP nades for those ENERGY needs. Zap-zap the borgs
"Energy" = list(
slot_glasses_str = /obj/item/clothing/glasses/sunglasses/prescription,
slot_belt_str = /obj/item/weapon/gun/energy/laser,
slot_belt_str = /obj/item/weapon/gun/energy/laser/rifle/syndie,
slot_in_backpack_str = list(
/obj/item/weapon/gun/energy/ionrifle/ioncarbine = 1,
/obj/item/weapon/grenade/empgrenade = 2,

View File

@@ -13,9 +13,13 @@
/datum/striketeam/syndicate/extras()
var/v = 0
for (var/obj/effect/landmark/L in landmarks_list)
if (L.name == "Syndicate-Commando-Bomb")
new /obj/effect/spawner/newbomb/timer/syndicate(L.loc)
if(!v)
new /obj/item/weapon/gun/gatling/beegun/ss_visceratorgun(L.loc)//i don't want to map in more guns
v = 1
/datum/striketeam/syndicate/create_commando(obj/spawn_location, syndicate_leader_selected = 0)
var/mob/living/carbon/human/new_syndicate_commando = new(spawn_location.loc)

View File

@@ -44,7 +44,7 @@
/mob/living/simple_animal/hostile/viscerator/CanAttack(var/atom/the_target)
if(ismob(the_target))
var/mob/mob_target = the_target
if((isnukeop(mob_target) && faction == "syndicate") || (iswizard(mob_target) && faction == "wizard"))
if((iselitesyndie(mob_target) && faction == "syndiesquad") || (isnukeop(mob_target) && faction == "syndicate") || (iswizard(mob_target) && faction == "wizard"))
return 0
return ..(the_target)
@@ -60,10 +60,15 @@
/mob/living/simple_animal/hostile/viscerator/proc/handle_faction(var/mob/user)
if(!user || isnukeop(user) || iswizard(user)) //wizard and nook ops already properly match faction
if(!user || iselitesyndie(user) || isnukeop(user) || iswizard(user)) //wizard and nook ops already properly match faction
return
faction = "\ref[user]"
/mob/living/simple_animal/hostile/viscerator/syndiesquad
faction = "syndiesquad"
icon_state = "viscerator_black"
icon_living = "viscerator_black"
/mob/living/simple_animal/hostile/viscerator/flying_skull
name = "flying skull"
desc = "A human skull levitating in the air."

View File

@@ -50,6 +50,11 @@
projectile_type = /obj/item/projectile/beam
charge_cost = 50
/obj/item/weapon/gun/energy/laser/rifle/syndie
icon_state = "exaltlasergun"
item_state = "exaltlasergun"
fire_sound = 'sound/weapons/laserriflefire.ogg'
/obj/item/weapon/gun/energy/laser/failure_check(var/mob/living/carbon/human/M)
if(istext(projectile_type))
projectile_type = text2path(projectile_type)

View File

@@ -127,6 +127,14 @@
item_state = "hornetgun0"
gatlingbullet = /obj/item/projectile/bullet/beegun/hornet
/obj/item/weapon/gun/gatling/beegun/ss_visceratorgun
name = "viscerator gun"
desc = "THE HAAAAAAACKS!"
icon_state = "ss_visceratorgun"
item_state = "ss_visceratorgun0"
gatlingbullet = /obj/item/projectile/bullet/beegun/ss_viscerator
/obj/item/weapon/gun/gatling/batling
name = "batling gun"
desc = "Batter up!"

View File

@@ -450,7 +450,7 @@
var/angery = 1
/obj/item/projectile/bullet/beegun/chillbug
name = "hornet"
name = "chillbug"
icon_state = "chillgun"
projectile_speed = 0.5
bee_type = /mob/living/simple_animal/bee/chillgun
@@ -462,8 +462,15 @@
projectile_speed = 0.5
bee_type = /mob/living/simple_animal/bee/hornetgun
/obj/item/projectile/bullet/beegun/ss_viscerator
name = "viscerator"
icon_state = "ss_visceratorgun"
projectile_speed = 0.75
bee_type = /mob/living/simple_animal/hostile/viscerator/syndiesquad
/obj/item/projectile/bullet/beegun/OnFired()
..()
if(isbee(bee_type) )
playsound(starting, 'sound/effects/bees.ogg', 75, 1)
/obj/item/projectile/bullet/beegun/to_bump(atom/A as mob|obj|turf|area)
@@ -485,12 +492,14 @@
admin_warn(M)
BEE.forceMove(M.loc)
BEE.target = M
if(isbee(BEE))
BEE.target_turf = M.loc
BEE.AttackTarget(TRUE)//let's sting them once
if (angery)
if (isbee(BEE) && BEE.bee_species.angery)
BEE.MoveToTarget()//then let's immediately start running after them
else
BEE.target = null
if(isbee(BEE))
BEE.target_turf = null
bullet_die()

Binary file not shown.

Before

Width:  |  Height:  |  Size: 592 KiB

After

Width:  |  Height:  |  Size: 595 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.