diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index e96fdf4029b..8887fc5ce0a 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -83,7 +83,7 @@ src << "[T] is not compatible with our biology." return - if(NOCLONE in T.mutations) + if((NOCLONE || SKELETON) in T.mutations) src << "This creature's DNA is ruined beyond useability!" return diff --git a/code/game/gamemodes/gameticker.dm b/code/game/gamemodes/gameticker.dm index d5450da2507..339a1b8fa5e 100644 --- a/code/game/gamemodes/gameticker.dm +++ b/code/game/gamemodes/gameticker.dm @@ -39,6 +39,7 @@ var/global/datum/controller/gameticker/ticker /datum/controller/gameticker/proc/pregame() login_music = pick(\ + 'sound/music/knights.ogg',\ 'sound/music/space.ogg',\ 'sound/music/traitor.ogg',\ 'sound/music/space_oddity.ogg') //Ground Control to Major Tom, this song is cool, what's going on? diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 19f03028b2b..e647f53af8d 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -152,7 +152,7 @@ spawn (rand(waittime_l, waittime_h)) send_intercept() - + set_security_level(3) return ..() diff --git a/code/game/gamemodes/xenos/xenos.dm b/code/game/gamemodes/xenos/xenos.dm index 0dea8e90573..fb8f21f8b86 100644 --- a/code/game/gamemodes/xenos/xenos.dm +++ b/code/game/gamemodes/xenos/xenos.dm @@ -126,6 +126,13 @@ del(xeno_mind) O.job = "Alien Cyborg" O.name = "Alien Cyborg" + O.module = new /obj/item/weapon/robot_module/alien/hunter(src) + O.hands.icon_state = "standard" + O.icon = "icons/mob/alien.dmi" + O.icon_state = "xenoborg-state-a" + O.modtype = "Xeno-Hu" + feedback_inc("xeborg_hunter",1) + xenoborg_selected = 1 spawnpos++ diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 11d32c93dee..94e2731ae74 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -30,12 +30,12 @@ if(M.lying) return dirt++ var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src) - if (dirt >= 30) + if (dirt >= 50) if (!dirtoverlay) dirtoverlay = new/obj/effect/decal/cleanable/dirt(src) dirtoverlay.alpha = 15 - else if (dirt > 30) - dirtoverlay.alpha = min(dirtoverlay.alpha+20, 255) + else if (dirt > 50) + dirtoverlay.alpha = min(dirtoverlay.alpha+5, 255) if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M if(istype(H.shoes, /obj/item/clothing/shoes/clown_shoes)) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index ca9a42bd6d0..3f7ef4fbb89 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -182,6 +182,7 @@ corpseid = 1 corpseidjob = "Clown" corpseidaccess = "Clown" + timeofdeath = -50000 /obj/effect/landmark/corpse/clownking name = "Clown King" @@ -208,7 +209,7 @@ corpseid = 1 corpseidjob = "Mime" corpseidaccess = "Mime" - + timeofdeath = -50000 /obj/effect/landmark/corpse/scientist name = "Scientist" diff --git a/code/modules/clothing/spacesuits/ninja.dm b/code/modules/clothing/spacesuits/ninja.dm index b94526eb1d3..fbe33dc81ea 100644 --- a/code/modules/clothing/spacesuits/ninja.dm +++ b/code/modules/clothing/spacesuits/ninja.dm @@ -13,7 +13,7 @@ desc = "A unique, vaccum-proof suit of nano-enhanced armor designed specifically for Spider Clan assassins." icon_state = "s-ninja" item_state = "s-ninja_suit" - allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/cell) + allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/handcuffs,/obj/item/weapon/tank,/obj/item/weapon/cell) slowdown = 0 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) siemens_coefficient = 0.2 diff --git a/code/modules/mining/abandonedcrates.dm b/code/modules/mining/abandonedcrates.dm index 3278fbd7a8b..ce2023db5b1 100644 --- a/code/modules/mining/abandonedcrates.dm +++ b/code/modules/mining/abandonedcrates.dm @@ -24,77 +24,43 @@ if(2) new/obj/item/weapon/pickaxe/drill(src) new/obj/item/device/taperecorder(src) - new/obj/item/clothing/suit/space/rig(src) - new/obj/item/clothing/head/helmet/space/rig(src) + new/obj/item/clothing/suit/space(src) + new/obj/item/clothing/head/helmet/space(src) if(3) - for(var/i = 0, i < 12, i++) - new/obj/item/weapon/coin/diamond(src) - if(4) - new/obj/item/clothing/shoes/clown_shoes(src) - new/obj/item/clothing/under/rank/clown(src) - new/obj/item/clothing/mask/gas/clown_hat(src) - new/obj/item/weapon/bananapeel(src) - if(5) - for(var/i = 0, i < 6, i++) - new/obj/item/weapon/reagent_containers/food/snacks/sliceable/birthdaycake(src) - new/obj/item/weapon/lighter/zippo(src) - if(7) - new/obj/item/weapon/reagent_containers/glass/beaker/bluespace(src) - if(9) - for(var/i = 0, i < 5, i++) - new/obj/item/weapon/ore/diamond(src) - if(10) - for(var/i = 0, i < 5, i++) - new/obj/item/weapon/ore/clown(src) - if(11) return - if(12) - new/obj/item/seeds/deathberryseed(src) - new/obj/item/seeds/deathnettleseed(src) - if(13) - new/obj/machinery/hydroponics(src) - if(14) - new/obj/item/seeds/cashseed(src) - if(15) + if(4) + new/obj/item/weapon/reagent_containers/glass/beaker/bluespace(src) + if(5 to 6) + for(var/i = 0, i < 10, i++) + new/obj/item/weapon/ore/diamond(src) + if(7) + return + if(8) + return + if(9) + for(var/i = 0, i < 3, i++) + new/obj/machinery/hydroponics(src) + if(10) for(var/i = 0, i < 3, i++) new/obj/item/weapon/reagent_containers/glass/beaker/noreact(src) - new/obj/item/weapon/reagent_containers/hypospray(src) - if(16) - new /obj/item/weapon/storage/pill_bottle/random_meds(src) - if(17) - new/obj/item/mecha_parts/mecha_equipment/weapon/honker(src) - new/obj/item/mecha_parts/chassis/honker(src) - new/obj/item/mecha_parts/part/honker_torso(src) - new/obj/item/mecha_parts/part/honker_head(src) - new/obj/item/mecha_parts/part/honker_left_arm(src) - if(18) + if(11 to 13) + new/obj/item/weapon/melee/classic_baton(src) + if(14) return - if(19) - for(var/i = 0, i < 4, i++) - new/obj/item/weapon/melee/classic_baton(src) - if(20) - new/obj/item/weapon/storage/lockbox/clusterbang(src) - if(21) - new/obj/item/weapon/aiModule/robocop(src) - if(22) + if(15) new/obj/item/clothing/under/chameleon(src) for(var/i = 0, i < 7, i++) new/obj/item/clothing/tie/horrible(src) - if(23) + if(16) new/obj/item/clothing/under/shorts(src) new/obj/item/clothing/under/shorts/red(src) new/obj/item/clothing/under/shorts/blue(src) //Dummy crates start here. - if(24 to 29) - return - if(8) - return - if(6) + if(17 to 29) return //Dummy crates end here. if(30) - for(var/i = 0, i < 4, i++) - new/obj/item/weapon/melee/baton(src) + new/obj/item/weapon/melee/baton(src) /obj/structure/closet/crate/secure/loot/attack_hand(mob/user as mob) if(locked) @@ -114,7 +80,7 @@ if (attempts == 0) user << "The crate's anti-tamper system activates!" var/turf/T = get_turf(src.loc) - explosion(T, 0, 1, 2, 1) + explosion(T, 0, 0, 0, 1) del(src) return else diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index fa9145df216..8455b559df9 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -495,7 +495,7 @@ commented out in r5061, I left it because of the shroom thingies var/turf/simulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/simulated/floor/plating/airless/asteroid) N.fullUpdateMineralOverlays() - var/crate = rand(1,30) + var/crate = rand(1,500) switch(crate) if(1) visible_message("After digging, you find an old dusty crate buried within!") diff --git a/code/modules/mining/unsim_mine_turfs.dm b/code/modules/mining/unsim_mine_turfs.dm index b656adb4e4d..a35c1c1178d 100644 --- a/code/modules/mining/unsim_mine_turfs.dm +++ b/code/modules/mining/unsim_mine_turfs.dm @@ -487,7 +487,7 @@ commented out in r5061, I left it because of the shroom thingies var/turf/unsimulated/floor/plating/airless/asteroid/N = ChangeTurf(/turf/unsimulated/floor/plating/airless/asteroid) N.fullUpdateMineralOverlays() - var/crate = rand(1,30) + var/crate = rand(1,500) switch(crate) if(1) visible_message("After digging, you find an old dusty crate buried within!") diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 95930443dd1..114db828bd0 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -106,6 +106,9 @@ if(mind && mind.vampire && (mind in ticker.mode.vampires)) M << "\red Your fangs fail to pierce [src.name]'s cold flesh" return 0 + if(SKELETON in mutations) + M << "\red There is no blood in a skeleton!" + return 0 //we're good to suck the blood, blaah M.handle_bloodsucking(src) add_logs(src, M, "vampirebit") diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index f95feb868f0..e902b1abdd8 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -154,7 +154,7 @@ return var/list/modules = list("Standard", "Engineering", "Medical", "Miner", "Janitor", "Service", "Security") - if(security_level >= SEC_LEVEL_GAMMA) + if(security_level == (SEC_LEVEL_GAMMA || SEC_LEVEL_EPSILON)) src << "\red Crisis mode active. Combat module available." modules+="Combat" if(mmi != null && mmi.alien) diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 656ae586074..ed98e54e6fe 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -190,7 +190,7 @@ s_click(hud) return if(M == assailant && state >= GRAB_AGGRESSIVE) - if( (ishuman(user) && (FAT in user.mutations) && iscarbon(affecting) ) || ( isalien(user) && iscarbon(affecting) ) ) + if( (ishuman(user) && (FAT in user.mutations) && iscarbon(affecting) ) || ( isalien(user) && iscarbon(affecting) ) || ( istype(user,/mob/living/carbon/human/kidan) && istype(affecting,/mob/living/carbon/monkey/diona) ) ) var/mob/living/carbon/attacker = user user.visible_message("[user] is attempting to devour [affecting]!") if(istype(user, /mob/living/carbon/alien/humanoid/hunter)) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index 4cf25471a02..e6be105f74b 100644 Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ diff --git a/sound/music/knights.ogg b/sound/music/knights.ogg new file mode 100644 index 00000000000..e74e6a33521 Binary files /dev/null and b/sound/music/knights.ogg differ