diff --git a/__DEFINES/_macros.dm b/__DEFINES/_macros.dm index bbb99549e5f..c831a98a004 100644 --- a/__DEFINES/_macros.dm +++ b/__DEFINES/_macros.dm @@ -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) diff --git a/code/datums/outfit/striketeams/nukeop.dm b/code/datums/outfit/striketeams/nukeop.dm index ad31a3bbece..eb826cc31f3 100644 --- a/code/datums/outfit/striketeams/nukeop.dm +++ b/code/datums/outfit/striketeams/nukeop.dm @@ -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, diff --git a/code/game/striketeams/syndicate_elite_squad.dm b/code/game/striketeams/syndicate_elite_squad.dm index e899d884588..e7e76f08f07 100644 --- a/code/game/striketeams/syndicate_elite_squad.dm +++ b/code/game/striketeams/syndicate_elite_squad.dm @@ -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) diff --git a/code/modules/mob/living/simple_animal/hostile/viscerator.dm b/code/modules/mob/living/simple_animal/hostile/viscerator.dm index c50db982d9e..88eab543d1c 100644 --- a/code/modules/mob/living/simple_animal/hostile/viscerator.dm +++ b/code/modules/mob/living/simple_animal/hostile/viscerator.dm @@ -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." diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 1020f927de2..72f5b363ca4 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -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) diff --git a/code/modules/projectiles/guns/projectile/minigun.dm b/code/modules/projectiles/guns/projectile/minigun.dm index 1a8d8e0222c..5f9f2b3cc8a 100644 --- a/code/modules/projectiles/guns/projectile/minigun.dm +++ b/code/modules/projectiles/guns/projectile/minigun.dm @@ -126,6 +126,14 @@ icon_state = "hornetgun" 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" diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 2be37024920..36d8e4bc7bc 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -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 @@ -461,11 +461,18 @@ icon_state = "hornetgun" 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() ..() - playsound(starting, 'sound/effects/bees.ogg', 75, 1) - + 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) if (!A) return 0 @@ -485,13 +492,15 @@ admin_warn(M) BEE.forceMove(M.loc) BEE.target = M - BEE.target_turf = M.loc + 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 - BEE.target_turf = null + if(isbee(BEE)) + BEE.target_turf = null bullet_die() diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index cb0a0a01951..47d26b4d725 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/icons/mob/in-hand/left/guninhands_left.dmi b/icons/mob/in-hand/left/guninhands_left.dmi index c43e7453691..5a32b7e988d 100644 Binary files a/icons/mob/in-hand/left/guninhands_left.dmi and b/icons/mob/in-hand/left/guninhands_left.dmi differ diff --git a/icons/mob/in-hand/left/guns_experimental.dmi b/icons/mob/in-hand/left/guns_experimental.dmi index 1864d916416..dcda72360be 100644 Binary files a/icons/mob/in-hand/left/guns_experimental.dmi and b/icons/mob/in-hand/left/guns_experimental.dmi differ diff --git a/icons/mob/in-hand/right/guninhands_right.dmi b/icons/mob/in-hand/right/guninhands_right.dmi index d46c0140034..a2237d99356 100644 Binary files a/icons/mob/in-hand/right/guninhands_right.dmi and b/icons/mob/in-hand/right/guninhands_right.dmi differ diff --git a/icons/mob/in-hand/right/guns_experimental.dmi b/icons/mob/in-hand/right/guns_experimental.dmi index 662415cf039..ca91cfc0470 100644 Binary files a/icons/mob/in-hand/right/guns_experimental.dmi and b/icons/mob/in-hand/right/guns_experimental.dmi differ diff --git a/icons/obj/gun.dmi b/icons/obj/gun.dmi index 4fe74ff4e3e..bf7065dd7db 100644 Binary files a/icons/obj/gun.dmi and b/icons/obj/gun.dmi differ diff --git a/icons/obj/gun_experimental.dmi b/icons/obj/gun_experimental.dmi index 11a60a7da56..df0080f00d1 100644 Binary files a/icons/obj/gun_experimental.dmi and b/icons/obj/gun_experimental.dmi differ diff --git a/icons/obj/projectiles_experimental.dmi b/icons/obj/projectiles_experimental.dmi index 8d253f17678..670495603e4 100644 Binary files a/icons/obj/projectiles_experimental.dmi and b/icons/obj/projectiles_experimental.dmi differ diff --git a/sound/weapons/laserriflefire.ogg b/sound/weapons/laserriflefire.ogg new file mode 100644 index 00000000000..747ffed9344 Binary files /dev/null and b/sound/weapons/laserriflefire.ogg differ