work
@@ -21,9 +21,14 @@
|
||||
return 0
|
||||
|
||||
/obj/item/weapon/spell/proc/allowed_to_teleport()
|
||||
if(owner && owner.z in using_map.admin_levels)
|
||||
return 0
|
||||
return 1
|
||||
if(owner)
|
||||
if(owner.z in using_map.admin_levels)
|
||||
return FALSE
|
||||
|
||||
var/turf/T = get_turf(owner)
|
||||
if(T.block_tele)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
/obj/item/weapon/spell/proc/within_range(var/atom/target, var/max_range = 7) // Beyond 7 is off the screen.
|
||||
if(range(get_dist(owner, target) <= max_range))
|
||||
|
||||
@@ -23,9 +23,12 @@
|
||||
var/turf/starting = get_turf(AM)
|
||||
var/list/targets = list()
|
||||
|
||||
if(starting.block_tele)
|
||||
return
|
||||
|
||||
valid_turfs:
|
||||
for(var/turf/simulated/T in range(AM, range))
|
||||
if(T.density || istype(T, /turf/simulated/mineral)) //Don't blink to vacuum or a wall
|
||||
if(T.density || T.block_tele || istype(T, /turf/simulated/mineral)) //Don't blink to vacuum or a wall
|
||||
continue
|
||||
for(var/atom/movable/stuff in T.contents)
|
||||
if(stuff.density)
|
||||
@@ -54,7 +57,10 @@
|
||||
if(istype(hit_atom, /atom/movable))
|
||||
var/atom/movable/AM = hit_atom
|
||||
if(!within_range(AM))
|
||||
user << "<span class='warning'>\The [AM] is too far away to blink.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [AM] is too far away to blink.</span>")
|
||||
return
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
return
|
||||
if(pay_energy(400))
|
||||
if(check_for_scepter())
|
||||
@@ -67,6 +73,9 @@
|
||||
to_chat(user, "<span class='warning'>You need more energy to blink [AM] away!</span>")
|
||||
|
||||
/obj/item/weapon/spell/blink/on_use_cast(mob/user)
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
return
|
||||
if(pay_energy(200))
|
||||
if(check_for_scepter())
|
||||
safe_blink(user, calculate_spell_power(10))
|
||||
@@ -80,6 +89,9 @@
|
||||
/obj/item/weapon/spell/blink/on_melee_cast(atom/hit_atom, mob/living/user, def_zone)
|
||||
if(istype(hit_atom, /atom/movable))
|
||||
var/atom/movable/AM = hit_atom
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
return
|
||||
if(pay_energy(300))
|
||||
visible_message("<span class='danger'>\The [user] reaches out towards \the [AM] with a glowing hand.</span>")
|
||||
if(check_for_scepter())
|
||||
|
||||
@@ -68,6 +68,9 @@
|
||||
user << "<span class='danger'>There's no Mark!</span>"
|
||||
return 0
|
||||
else
|
||||
if(!allowed_to_teleport())
|
||||
to_chat(user, "<span class='warning'>Teleportation doesn't seem to work here.</span>")
|
||||
return
|
||||
visible_message("<span class='warning'>\The [user] starts glowing!</span>")
|
||||
var/light_intensity = 2
|
||||
var/time_left = 3
|
||||
|
||||
@@ -46,6 +46,9 @@
|
||||
checked_turf = get_step(checked_turf, direction) //Advance in the given direction
|
||||
total_cost += check_for_scepter() ? 400 : 800 //Phasing through matter's expensive, you know.
|
||||
i--
|
||||
if(checked_turf.block_tele) // The fun ends here.
|
||||
break
|
||||
|
||||
if(!checked_turf.density) //If we found a destination (a non-dense turf), then we can stop.
|
||||
var/dense_objs_on_turf = 0
|
||||
for(var/atom/movable/stuff in checked_turf.contents) //Make sure nothing dense is where we want to go, like an airlock or window.
|
||||
|
||||
@@ -462,3 +462,9 @@
|
||||
/datum/access/trader
|
||||
id = access_trader
|
||||
access_type = ACCESS_TYPE_PRIVATE
|
||||
|
||||
/var/const/access_alien = 300 // For things like crashed ships.
|
||||
/datum/access/alien
|
||||
id = access_alien
|
||||
desc = "#%_^&*@!"
|
||||
access_type = ACCESS_TYPE_PRIVATE
|
||||
|
||||
@@ -416,6 +416,24 @@
|
||||
icon = 'icons/obj/doors/shuttledoors_vertical.dmi'
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_voidcraft/vertical
|
||||
|
||||
/obj/machinery/door/airlock/alien
|
||||
name = "alien airlock"
|
||||
desc = "You're fairly sure this is a door."
|
||||
icon = 'icons/obj/doors/Dooralien.dmi'
|
||||
explosion_resistance = 20
|
||||
secured_wires = TRUE
|
||||
hackProof = TRUE
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_alien
|
||||
req_one_access = list(access_alien)
|
||||
|
||||
/obj/machinery/door/airlock/alien/locked
|
||||
icon_state = "door_locked"
|
||||
locked = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/alien/public // Entry to UFO.
|
||||
req_one_access = list()
|
||||
normalspeed = FALSE // So it closes faster and hopefully keeps the warm air inside.
|
||||
|
||||
/*
|
||||
About the new airlock wires panel:
|
||||
* An airlock wire dialog can be accessed by the normal way or by using wirecutters or a multitool on the door while the wire-panel is open. This would show the following wires, which you can either wirecut/mend or send a multitool pulse through. There are 9 wires.
|
||||
|
||||
@@ -86,6 +86,23 @@
|
||||
health = 250 // Since lasers do 40 each.
|
||||
maxhealth = 250
|
||||
|
||||
/obj/machinery/porta_turret/alien // The kind used on the UFO submap.
|
||||
name = "interior anti-boarding turret"
|
||||
desc = "A very tough looking turret made by alien hands."
|
||||
installation = /obj/item/weapon/gun/energy/laser
|
||||
enabled = TRUE
|
||||
lethal = TRUE
|
||||
ailock = TRUE
|
||||
check_all = TRUE
|
||||
health = 250 // Similar to the AI turrets.
|
||||
maxhealth = 250
|
||||
|
||||
/obj/machinery/porta_turret/alien/destroyed // Turrets that are already dead, to act as a warning of what the rest of the submap contains.
|
||||
name = "broken interior anti-boarding turret"
|
||||
desc = "A very tough looking turret made by alien hands. This one looks destroyed, thankfully."
|
||||
icon_state = "destroyed_target_prism"
|
||||
stat = BROKEN
|
||||
|
||||
/obj/machinery/porta_turret/New()
|
||||
..()
|
||||
req_access.Cut()
|
||||
@@ -103,6 +120,11 @@
|
||||
req_one_access.Cut()
|
||||
req_access = list(access_cent_specops)
|
||||
|
||||
/obj/machinery/porta_turret/alien/New()
|
||||
..()
|
||||
req_one_access.Cut()
|
||||
req_access = list(access_alien)
|
||||
|
||||
/obj/machinery/porta_turret/Destroy()
|
||||
qdel(spark_system)
|
||||
spark_system = null
|
||||
@@ -436,6 +458,14 @@ var/list/turret_icons
|
||||
return
|
||||
..()
|
||||
|
||||
/obj/machinery/porta_turret/alien/emp_act(severity) // This is overrided to give an EMP resistance as well as avoid scambling the turret settings.
|
||||
if(prob(75)) // Superior alien technology, I guess.
|
||||
return
|
||||
enabled = FALSE
|
||||
spawn(rand(1 MINUTE, 2 MINUTES))
|
||||
if(!enabled)
|
||||
enabled = TRUE
|
||||
|
||||
/obj/machinery/porta_turret/ex_act(severity)
|
||||
switch (severity)
|
||||
if(1)
|
||||
|
||||
@@ -247,6 +247,7 @@
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "belt"
|
||||
item_state = "security"
|
||||
storage_slots = 8
|
||||
can_hold = list(
|
||||
/obj/item/device/healthanalyzer,
|
||||
/obj/item/weapon/dnainjector,
|
||||
@@ -284,6 +285,7 @@
|
||||
new /obj/item/weapon/surgical/FixOVein/alien(src)
|
||||
new /obj/item/weapon/surgical/bone_clamp/alien(src)
|
||||
new /obj/item/weapon/surgical/cautery/alien(src)
|
||||
new /obj/item/weapon/surgical/surgicaldrill/alien(src)
|
||||
|
||||
/obj/item/weapon/storage/belt/champion
|
||||
name = "championship belt"
|
||||
|
||||
79
code/game/objects/structures/alien_props.dm
Normal file
@@ -0,0 +1,79 @@
|
||||
// These contain structures to make certain 'alien' (as in the ayyy ones, not xenomorphs) submaps more filled, and don't really do anything.
|
||||
|
||||
/obj/structure/prop/alien
|
||||
name = "some alien thing"
|
||||
desc = "My description is broken, bug a developer."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
density = TRUE
|
||||
anchored = TRUE
|
||||
var/interaction_message = null
|
||||
|
||||
/obj/structure/prop/alien/attack_hand(mob/living/user) // Used to tell the player that this isn't useful for anything.
|
||||
if(!istype(user))
|
||||
return FALSE
|
||||
if(!interaction_message)
|
||||
return ..()
|
||||
else
|
||||
to_chat(user, interaction_message)
|
||||
|
||||
/obj/structure/prop/alien/computer
|
||||
name = "alien console"
|
||||
desc = "The console flashes what appear to be symbols you've never seen before."
|
||||
icon_state = "console-c"
|
||||
interaction_message = "<span class='warning'>The console flashes a series of unknown symbols as you press a button on what is presumably a keyboard. It probably some sort of \
|
||||
authentication error. Since you're not an alien, you should probably leave it alone.</span>"
|
||||
|
||||
/obj/structure/prop/alien/computer/camera
|
||||
desc = "This console is briefly flashing video feeds of various locations close by."
|
||||
icon_state = "camera"
|
||||
|
||||
/obj/structure/prop/alien/computer/camera/flipped
|
||||
icon_state = "camera_flipped"
|
||||
|
||||
/obj/structure/prop/alien/dispenser
|
||||
name = "alien dispenser"
|
||||
desc = "This looks like it dispenses... something?"
|
||||
icon_state = "dispenser"
|
||||
interaction_message = "<span class='warning'>You don't see any mechanism to operate this. Probably for the best.</span>"
|
||||
|
||||
/obj/structure/prop/alien/pod
|
||||
name = "alien pod"
|
||||
desc = "This seems to be a container for something."
|
||||
icon_state = "experiment"
|
||||
interaction_message = "<span class='warning'>You don't see any mechanism to open this thing. Probably for the best.</span>"
|
||||
|
||||
/obj/structure/prop/alien/pod/open
|
||||
name = "opened alien pod"
|
||||
desc = "At one point, this probably contained something interesting..."
|
||||
icon_state = "experiment-open"
|
||||
interaction_message = "<span class='warning'>You don't see any mechanism to close this thing.</span>"
|
||||
|
||||
/obj/structure/prop/alien/power
|
||||
name = "void core"
|
||||
icon_state = "core"
|
||||
desc = "An alien machine that seems to be producing energy seemingly out of nowhere."
|
||||
interaction_message = "<span class='warning'>Messing with something that makes energy out of nowhere seems very unwise.</span>"
|
||||
|
||||
/obj/item/prop/alien
|
||||
name = "some alien item"
|
||||
desc = "My description is broken, bug a developer."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
|
||||
// Mostly useless. Research might like it, however.
|
||||
/obj/item/prop/alien/junk
|
||||
name = "alien object"
|
||||
desc = "You have no idea what this thing does."
|
||||
icon_state = "health"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/static/list/possible_states = list("health", "spider", "slime", "emp", "species", "egg", "vent", "mindshock", "viral", "gland")
|
||||
var/static/list/possible_tech = list(TECH_MATERIAL, TECH_ENGINEERING, TECH_PHORON, TECH_POWER, TECH_BIO, TECH_COMBAT, TECH_MAGNET, TECH_DATA)
|
||||
|
||||
/obj/item/prop/alien/junk/initialize()
|
||||
..()
|
||||
icon_state = pick(possible_states)
|
||||
var/list/techs = possible_tech.Copy()
|
||||
origin_tech = list()
|
||||
for(var/i = 1 to rand(1, 4))
|
||||
var/new_tech = pick(techs)
|
||||
techs -= new_tech
|
||||
origin_tech[new_tech] = rand(5, 9)
|
||||
@@ -134,3 +134,12 @@
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
new /obj/item/clothing/head/helmet/thunderdome(src)
|
||||
|
||||
/obj/structure/closet/alien
|
||||
name = "alien container"
|
||||
desc = "Contains secrets of the universe."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "alien_locker"
|
||||
icon_closed = "alien_locker"
|
||||
icon_opened = "alien_locker_open"
|
||||
anchored = TRUE
|
||||
@@ -117,6 +117,12 @@
|
||||
base_icon_state = "voidcraft_vertical"
|
||||
airlock_type = "/voidcraft/vertical"
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_alien
|
||||
base_icon_state = "alien"
|
||||
base_name = "alien airlock"
|
||||
airlock_type = "/alien"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/multi_tile
|
||||
icon = 'icons/obj/doors/door_assembly2x1.dmi'
|
||||
dir = EAST
|
||||
|
||||
@@ -435,3 +435,77 @@ Loot piles can be depleted, if loot_depleted is turned on. Note that players wh
|
||||
loot_depletion = TRUE
|
||||
loot_left = 5 // This is to prevent people from asking the whole station to go down to some alien ruin to get massive amounts of phat lewt.
|
||||
|
||||
// Base type for alien piles.
|
||||
/obj/structure/loot_pile/surface/alien
|
||||
name = "alien pod"
|
||||
desc = "A pod which looks bigger on the inside. Something quiet shiny might be inside?"
|
||||
icon_state = "alien_pile1"
|
||||
|
||||
/obj/structure/loot_pile/surface/alien
|
||||
common_loot = list(
|
||||
/obj/item/prop/alien/junk
|
||||
)
|
||||
|
||||
// May contain alien tools.
|
||||
/obj/structure/loot_pile/surface/alien/engineering
|
||||
uncommon_loot = list(
|
||||
/obj/item/device/multitool/alien,
|
||||
/obj/item/stack/cable_coil/alien,
|
||||
/obj/item/weapon/crowbar/alien,
|
||||
/obj/item/weapon/screwdriver/alien,
|
||||
/obj/item/weapon/weldingtool/alien,
|
||||
/obj/item/weapon/wirecutters/alien,
|
||||
/obj/item/weapon/wrench/alien
|
||||
)
|
||||
rare_loot = list(
|
||||
/obj/item/weapon/storage/belt/utility/alien/full
|
||||
)
|
||||
|
||||
// May contain alien surgery equipment or powerful medication.
|
||||
/obj/structure/loot_pile/surface/alien/medical
|
||||
uncommon_loot = list(
|
||||
/obj/item/weapon/surgical/FixOVein/alien,
|
||||
/obj/item/weapon/surgical/bone_clamp/alien,
|
||||
/obj/item/weapon/surgical/cautery/alien,
|
||||
/obj/item/weapon/surgical/circular_saw/alien,
|
||||
/obj/item/weapon/surgical/hemostat/alien,
|
||||
/obj/item/weapon/surgical/retractor/alien,
|
||||
/obj/item/weapon/surgical/scalpel/alien,
|
||||
/obj/item/weapon/surgical/surgicaldrill/alien
|
||||
)
|
||||
rare_loot = list(
|
||||
/obj/item/weapon/storage/belt/medical/alien
|
||||
)
|
||||
|
||||
// May contain powercells or alien weaponry.
|
||||
/obj/structure/loot_pile/surface/alien/security
|
||||
uncommon_loot = list(
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
)
|
||||
|
||||
// The pile found at the very end, and as such has the best loot.
|
||||
/obj/structure/loot_pile/surface/alien/end
|
||||
common_loot = list(
|
||||
/obj/item/device/multitool/alien,
|
||||
/obj/item/stack/cable_coil/alien,
|
||||
/obj/item/weapon/crowbar/alien,
|
||||
/obj/item/weapon/screwdriver/alien,
|
||||
/obj/item/weapon/weldingtool/alien,
|
||||
/obj/item/weapon/wirecutters/alien,
|
||||
/obj/item/weapon/wrench/alien,
|
||||
|
||||
/obj/item/weapon/surgical/FixOVein/alien,
|
||||
/obj/item/weapon/surgical/bone_clamp/alien,
|
||||
/obj/item/weapon/surgical/cautery/alien,
|
||||
/obj/item/weapon/surgical/circular_saw/alien,
|
||||
/obj/item/weapon/surgical/hemostat/alien,
|
||||
/obj/item/weapon/surgical/retractor/alien,
|
||||
/obj/item/weapon/surgical/scalpel/alien,
|
||||
/obj/item/weapon/surgical/surgicaldrill/alien,
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien,
|
||||
)
|
||||
uncommon_loot = list(
|
||||
/obj/item/weapon/storage/belt/medical/alien,
|
||||
/obj/item/weapon/storage/belt/utility/alien/full
|
||||
)
|
||||
|
||||
@@ -174,13 +174,6 @@
|
||||
/obj/structure/bed/padded/New(var/newloc)
|
||||
..(newloc,"plastic","cotton")
|
||||
|
||||
/obj/structure/bed/alien
|
||||
name = "resting contraption"
|
||||
desc = "This looks similar to contraptions from earth. Could aliens be stealing our technology?"
|
||||
|
||||
/obj/structure/bed/alien/New(var/newloc)
|
||||
..(newloc,"resin")
|
||||
|
||||
/obj/structure/bed/double
|
||||
name = "double bed"
|
||||
icon_state = "doublebed"
|
||||
@@ -305,3 +298,15 @@
|
||||
spawn(0)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
/obj/structure/bed/alien
|
||||
name = "resting contraption"
|
||||
desc = "Whatever species designed this must've enjoyed relaxation as well. Looks vaguely comfy."
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "bed"
|
||||
|
||||
/obj/structure/bed/alien/update_icon()
|
||||
return // Doesn't care about material or anything else.
|
||||
|
||||
/obj/structure/bed/alien/attackby(obj/item/weapon/W, mob/user)
|
||||
return // No deconning.
|
||||
7
code/game/turfs/simulated/dungeon/floor.dm
Normal file
@@ -0,0 +1,7 @@
|
||||
// Special floor type for Point of Interests.
|
||||
|
||||
/turf/simulated/floor/dungeon
|
||||
block_tele = TRUE // Anti-cheese.
|
||||
|
||||
/turf/simulated/floor/dungeon/ex_act()
|
||||
return
|
||||
13
code/game/turfs/simulated/dungeon/wall.dm
Normal file
@@ -0,0 +1,13 @@
|
||||
// Special wall type for Point of Interests.
|
||||
|
||||
/turf/simulated/wall/dungeon
|
||||
block_tele = TRUE // Anti-cheese.
|
||||
|
||||
/turf/simulated/wall/dungeon/New(var/newloc)
|
||||
..(newloc,"dungeonium")
|
||||
|
||||
/turf/simulated/wall/dungeon/attackby()
|
||||
return
|
||||
|
||||
/turf/simulated/wall/dungeon/ex_act()
|
||||
return
|
||||
@@ -166,6 +166,19 @@
|
||||
icon_state = "floor_glass"
|
||||
takes_underlays = 1
|
||||
|
||||
/turf/simulated/shuttle/floor/alien
|
||||
icon_state = "alienpod1"
|
||||
light_range = 3
|
||||
light_power = 3
|
||||
light_color = "#66ffff" // Bright cyan.
|
||||
|
||||
/turf/simulated/shuttle/floor/alien/initialize()
|
||||
..()
|
||||
icon_state = "alienpod[rand(1, 9)]"
|
||||
|
||||
/turf/simulated/shuttle/floor/alienplating
|
||||
icon_state = "alienplating"
|
||||
|
||||
/turf/simulated/shuttle/plating
|
||||
name = "plating"
|
||||
icon = 'icons/turf/floors.dmi'
|
||||
|
||||
@@ -107,6 +107,25 @@
|
||||
icon_state = "dark-nj"
|
||||
join_group = null
|
||||
|
||||
/turf/simulated/shuttle/wall/alien
|
||||
icon = 'icons/turf/shuttle_alien.dmi'
|
||||
icon_state = "alien"
|
||||
base_state = "alien"
|
||||
light_range = 3
|
||||
light_power = 3
|
||||
light_color = "#ff0066" // Pink-ish
|
||||
block_tele = TRUE // Will be used for dungeons so this is needed to stop cheesing with handteles.
|
||||
|
||||
/turf/simulated/shuttle/wall/alien/hard_corner
|
||||
name = "hardcorner wall"
|
||||
icon_state = "alien-hc"
|
||||
hard_corner = 1
|
||||
|
||||
/turf/simulated/shuttle/wall/alien/no_join
|
||||
name = "nojoin wall"
|
||||
icon_state = "alien-nj"
|
||||
join_group = null
|
||||
|
||||
/turf/simulated/shuttle/wall/New()
|
||||
..()
|
||||
//To allow mappers to rename shuttle walls to like "redfloor interior" or whatever for ease of use.
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
|
||||
var/list/footstep_sounds = null
|
||||
|
||||
var/block_tele = FALSE // If true, most forms of teleporting to or from this turf tile will fail.
|
||||
|
||||
/turf/New()
|
||||
..()
|
||||
for(var/atom/movable/AM as mob|obj in src)
|
||||
|
||||
@@ -210,6 +210,16 @@
|
||||
icon_state = "reactiveoff"
|
||||
..()
|
||||
|
||||
/obj/item/clothing/suit/armor/alien
|
||||
name = "alien armor"
|
||||
desc = "It's really resilient yet lightweight, so it's probably meant to be armor. Strangely enough it seems to have been designed for a humanoid shape."
|
||||
icon_state = "alien"
|
||||
blood_overlay_type = "armor"
|
||||
item_state_slots = list(slot_r_hand_str = "armor", slot_l_hand_str = "armor")
|
||||
slowdown = 0
|
||||
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS
|
||||
armor = list(melee = 65, bullet = 65, laser = 65, energy = 50, bomb = 50, bio = 0, rad = 40)
|
||||
|
||||
//Non-hardsuit ERT armor.
|
||||
/obj/item/clothing/suit/armor/vest/ert
|
||||
name = "emergency response team armor"
|
||||
|
||||
@@ -642,6 +642,19 @@ var/list/name_to_material
|
||||
display_name = "elevator panelling"
|
||||
icon_colour = "#666666"
|
||||
|
||||
// Ditto.
|
||||
/material/alienalloy/dungeonium
|
||||
name = "dungeonium"
|
||||
display_name = "ultra-durable"
|
||||
icon_base = "dungeon"
|
||||
icon_colour = "#FFFFFF"
|
||||
|
||||
/material/alienalloy/alium
|
||||
name = "alium"
|
||||
display_name = "alien"
|
||||
icon_base = "alien"
|
||||
icon_colour = "#FFFFFF"
|
||||
|
||||
/material/resin
|
||||
name = "resin"
|
||||
icon_colour = "#35343a"
|
||||
|
||||
@@ -35,6 +35,24 @@
|
||||
var/const/signfont = "Times New Roman"
|
||||
var/const/crayonfont = "Comic Sans MS"
|
||||
|
||||
/obj/item/weapon/paper/alien
|
||||
name = "alien tablet"
|
||||
desc = "It looks highly advanced"
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "alienpaper"
|
||||
|
||||
/obj/item/weapon/paper/alien/update_icon()
|
||||
if(info)
|
||||
icon_state = "alienpaper_words"
|
||||
else
|
||||
icon_state = "alienpaper"
|
||||
|
||||
/obj/item/weapon/paper/alien/burnpaper()
|
||||
return
|
||||
|
||||
/obj/item/weapon/paper/alien/AltClick() // No airplanes for me.
|
||||
return
|
||||
|
||||
//lipstick wiping is in code/game/objects/items/weapons/cosmetics.dm!
|
||||
|
||||
/obj/item/weapon/paper/New()
|
||||
|
||||
@@ -20,6 +20,11 @@
|
||||
maxcharge = 2400
|
||||
charge_amount = 20
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/empty/initialize()
|
||||
..()
|
||||
charge = 0
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge
|
||||
name = "self-charging weapon power cell"
|
||||
desc = "A small power cell designed to power handheld weaponry. This one recharges itself."
|
||||
@@ -30,4 +35,13 @@
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/captain
|
||||
charge_amount = 160 //Recharges a lot more quickly...
|
||||
charge_delay = 100 //... but it takes a while to get started
|
||||
charge_delay = 100 //... but it takes a while to get started
|
||||
|
||||
/obj/item/weapon/cell/device/weapon/recharge/alien
|
||||
name = "void cell"
|
||||
desc = "An alien technology that produces energy seemingly out of nowhere. Its small, cylinderal shape means it might be able to be used with human technology, perhaps?"
|
||||
icon = 'icons/obj/abductor.dmi'
|
||||
icon_state = "cell"
|
||||
charge_amount = 120 // 5%.
|
||||
charge_delay = 50 // Every five seconds, bit faster than the default.
|
||||
origin_tech = list(TECH_POWER = 8, TECH_ENGINEERING = 6)
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
|
||||
var/charge_cost = 240 //How much energy is needed to fire.
|
||||
var/cell_type = null
|
||||
var/cell_type = /obj/item/weapon/cell/device/weapon
|
||||
var/projectile_type = /obj/item/projectile/beam/practice
|
||||
var/modifystate
|
||||
var/charge_meter = 1 //if set, the icon state will be chosen based on the current charge
|
||||
@@ -41,7 +41,7 @@
|
||||
if(cell_type)
|
||||
power_supply = new cell_type(src)
|
||||
else
|
||||
power_supply = new /obj/item/weapon/cell/device/weapon(src)
|
||||
power_supply = null
|
||||
|
||||
update_icon()
|
||||
|
||||
|
||||
@@ -52,6 +52,10 @@
|
||||
self_recharge = 1
|
||||
use_external_power = 1
|
||||
|
||||
/obj/item/weapon/gun/energy/retro/empty
|
||||
icon_state = "retro"
|
||||
cell_type = null
|
||||
|
||||
/obj/item/weapon/gun/energy/captain
|
||||
name = "antique laser gun"
|
||||
icon_state = "caplaser"
|
||||
|
||||
@@ -90,6 +90,23 @@
|
||||
material = get_material_by_name("holowood")
|
||||
..()
|
||||
|
||||
/obj/structure/table/alien
|
||||
name = "alien table"
|
||||
desc = "Advanced flat surface technology at work!"
|
||||
icon_state = "alien_preview"
|
||||
can_reinforce = FALSE
|
||||
can_plate = FALSE
|
||||
|
||||
/obj/structure/table/alien/New()
|
||||
material = get_material_by_name("alium")
|
||||
verbs -= /obj/structure/table/verb/do_flip
|
||||
verbs -= /obj/structure/table/proc/do_put
|
||||
..()
|
||||
|
||||
/obj/structure/table/alien/dismantle(obj/item/weapon/wrench/W, mob/user)
|
||||
to_chat(user, "<span class='warning'>You cannot dismantle \the [src].</span>")
|
||||
return
|
||||
|
||||
//BENCH PRESETS
|
||||
/obj/structure/table/bench/standard
|
||||
icon_state = "plain_preview"
|
||||
|
||||
|
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 261 KiB |
BIN
icons/obj/doors/Dooralien.dmi
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 40 KiB |
BIN
icons/turf/shuttle_alien.dmi
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 72 KiB |
@@ -9,4 +9,8 @@
|
||||
name = "Prepper Bunker"
|
||||
|
||||
/area/submap/cave/qShuttle
|
||||
name = "Quarantined Shuttle"
|
||||
name = "Quarantined Shuttle"
|
||||
|
||||
/area/submap/cave/crashed_ufo
|
||||
name = "Crashed Alien Vessel"
|
||||
requires_power = FALSE
|
||||
|
||||
103
maps/submaps/cave_submaps/crashed_ufo.dmm
Normal file
@@ -0,0 +1,103 @@
|
||||
"aa" = (/turf/space,/area/space)
|
||||
"ab" = (/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ac" = (/turf/simulated/shuttle/wall/alien,/area/submap/cave/crashed_ufo)
|
||||
"ad" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ae" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"af" = (/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ag" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ah" = (/obj/structure/loot_pile/surface/alien/engineering,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ai" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aj" = (/obj/item/weapon/wrench/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ak" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"al" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"am" = (/obj/structure/table/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"an" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ao" = (/obj/structure/prop/alien/power,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ap" = (/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aq" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ar" = (/turf/simulated/shuttle/wall/alien/hard_corner,/area/submap/cave/crashed_ufo)
|
||||
"as" = (/obj/structure/prop/alien/computer,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"at" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"au" = (/obj/structure/table/alien,/obj/item/weapon/paper/alien{icon_state = "alienpaper_words"; info = "\[i]This tablet has a large collection of symbols that you've never seen before outside this ship. You have no hope of figuring out what any of the mean...\[/i]"},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"av" = (/obj/structure/loot_pile/surface/alien/security,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aw" = (/obj/structure/prop/alien/computer{dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"ax" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ay" = (/obj/machinery/door/airlock/alien/locked{welded = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"az" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aA" = (/obj/item/weapon/screwdriver/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aB" = (/obj/item/device/multitool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aC" = (/obj/structure/prop/alien/computer/camera/flipped{tag = "icon-camera_flipped (EAST)"; icon_state = "camera_flipped"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aD" = (/obj/structure/prop/alien/computer/camera{tag = "icon-camera (WEST)"; icon_state = "camera"; dir = 8},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aE" = (/obj/machinery/porta_turret/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aF" = (/obj/machinery/door/airlock/alien/locked{p_open = 1},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aG" = (/obj/effect/decal/remains/robot,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aH" = (/obj/item/stack/cable_coil/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aI" = (/obj/structure/table/alien,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aJ" = (/obj/structure/prop/alien/computer{tag = "icon-console-c (EAST)"; icon_state = "console-c"; dir = 4},/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aK" = (/obj/structure/table/alien,/obj/item/weapon/weldingtool/alien,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aL" = (/obj/structure/bed/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aM" = (/obj/structure/prop/alien/computer/camera,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aN" = (/obj/structure/closet/alien,/obj/item/weapon/paper/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aO" = (/obj/structure/bed/alien,/obj/effect/decal/remains/xeno,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aP" = (/obj/structure/loot_pile/surface/alien/end,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aQ" = (/obj/structure/table/alien,/obj/item/weapon/crowbar/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aR" = (/obj/structure/table/alien,/obj/item/weapon/surgical/FixOVein/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aS" = (/obj/structure/table/alien,/obj/item/weapon/wirecutters/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aT" = (/obj/machinery/door/airlock/alien/locked,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aU" = (/obj/effect/decal/remains/lizard,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aV" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aW" = (/obj/structure/table/alien,/obj/item/weapon/surgical/bone_clamp/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aX" = (/obj/structure/loot_pile/surface/alien/medical,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"aY" = (/obj/structure/closet/alien,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"aZ" = (/obj/structure/prop/alien/dispenser,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"ba" = (/obj/effect/decal/remains/mouse,/turf/simulated/shuttle/floor/alien,/area/submap/cave/crashed_ufo)
|
||||
"bb" = (/obj/structure/closet/alien,/obj/item/prop/alien/junk,/obj/item/prop/alien/junk,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bc" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHEAST)"; icon_state = "destroyed_target_prism"; dir = 6},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bd" = (/obj/item/weapon/cell/device/weapon/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"be" = (/obj/machinery/porta_turret/alien/destroyed{tag = "icon-destroyed_target_prism (SOUTHWEST)"; icon_state = "destroyed_target_prism"; dir = 10},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bf" = (/obj/item/weapon/gun/energy/retro/empty,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bg" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/used,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bh" = (/obj/item/weapon/reagent_containers/hypospray/autoinjector/biginjector/burn,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bi" = (/obj/effect/decal/remains/human{desc = "They look like human remains. Based on the equipment you saw nearby when you walked in, they were some kind of command person, and a poor one at that."},/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bj" = (/obj/item/clothing/gloves/yellow,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bk" = (/obj/item/weapon/storage/belt/utility/full,/obj/item/device/multitool,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bl" = (/obj/machinery/door/airlock/alien/public,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
"bm" = (/obj/item/clothing/suit/storage/hooded/wintercoat/captain,/obj/item/clothing/shoes/boots/winter/command,/turf/simulated/shuttle/floor/alienplating,/area/submap/cave/crashed_ufo)
|
||||
|
||||
(1,1,1) = {"
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaababababacacacacacacacababababaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaabababacacacacadadadadadacacacacabababaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaababacacacabaeabababafabababaeabacacacababaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaababacacabababacabababababababacabababacacababaaaaaaaaaaaa
|
||||
aaaaaaaaaaababacacababacacacacagabababagacacacacababacacababaaaaaaaaaa
|
||||
aaaaaaaaababacacababacacahaiacacababajacacakafacacababacacababaaaaaaaa
|
||||
aaaaaaababacacababacacagababalacacabacacamabafanacacababacacababaaaaaa
|
||||
aaaaaaabacacababacacaoababapalaqaraearacacaeacacacacacababacacabaaaaaa
|
||||
aaaaababacababacacaoababapapapabarabaragapapasatatacacacababacababaaaa
|
||||
aaaaabacacabacacagababapapapababaeabaeababapapapauacanacacabacacabaaaa
|
||||
aaaaabacababacahababapapapababaharabaravababapapawacabafacababacabaaaa
|
||||
aaababacaeacacaxabapapapababadacarayaracavababapapaeabazacacaeacababaa
|
||||
aaabacacababacacalalapaAabadacacasabasacacavababapacamacacababacacabaa
|
||||
aaabacadababagacacamaBafahacacaCapabapaDacacavabaEacacacagababadacabaa
|
||||
aaabacadababababacararaFaracapapapaGapapapacaraeararacababababadacabaa
|
||||
aaabacadabaHabababaeabababacagapaIaqaqapagacabababaeabababababadacabaa
|
||||
aaabacadababababacararaearacaJapamafaKapawacaraeararacafabababadacabaa
|
||||
aaabacadababagacacasacapaLacacapapapapapacacaMapapaNacacagababadacabaa
|
||||
aaabacacababacacapapacapapaOacacagaPagacacaQapapapacacacacababacacabaa
|
||||
aaababacaeacacaRapaOaracapapaLacacacacacaSaEapaparacapacacacaeacababaa
|
||||
aaaaabacababacauapapaTapapapapaOarabaraCapapapapaTapaUapacababacabaaaa
|
||||
aaaaabacacabacacaVaWaragapacapapaeabaeapapapapaparacapacacabacacabaaaa
|
||||
aaaaababacababacacacacaraearacacarabarapaparaTaracacacacababacababaaaa
|
||||
aaaaaaabacacababacacacaXabababaXaraearaYacacapacacacacababacacabaaaaaa
|
||||
aaaaaaababacacababacacaZababaXacacabacacacapbaapacacababacacababaaaaaa
|
||||
aaaaaaaaababacacababacacbbaXacacabababacacacapacacababacacababaaaaaaaa
|
||||
aaaaaaaaaaababacacababacacacacbcbdababbeacacacacababacacababaaaaaaaaaa
|
||||
aaaaaaaaaaaaababacacabababarabababbfabbgbharabababacacababaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaababacacacabaeabbdababbibjbkaeabacacacababaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaabababacacaracabarblarbmacaracacabababaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaababababacararabaracacababababaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaabababarblarabababaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
@@ -988,6 +988,7 @@
|
||||
#include "code\game\objects\items\weapons\tanks\tank_types.dm"
|
||||
#include "code\game\objects\items\weapons\tanks\tanks.dm"
|
||||
#include "code\game\objects\random\random.dm"
|
||||
#include "code\game\objects\structures\alien_props.dm"
|
||||
#include "code\game\objects\structures\barsign.dm"
|
||||
#include "code\game\objects\structures\bedsheet_bin.dm"
|
||||
#include "code\game\objects\structures\catwalk.dm"
|
||||
@@ -1083,6 +1084,8 @@
|
||||
#include "code\game\turfs\simulated\wall_types.dm"
|
||||
#include "code\game\turfs\simulated\walls.dm"
|
||||
#include "code\game\turfs\simulated\water.dm"
|
||||
#include "code\game\turfs\simulated\dungeon\floor.dm"
|
||||
#include "code\game\turfs\simulated\dungeon\wall.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\dirt.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\grass.dm"
|
||||
#include "code\game\turfs\simulated\outdoors\outdoors.dm"
|
||||
@@ -2346,6 +2349,7 @@
|
||||
#include "maps\submaps\_readme.dm"
|
||||
#include "maps\submaps\cave_submaps\cave.dm"
|
||||
#include "maps\submaps\cave_submaps\cave_areas.dm"
|
||||
#include "maps\submaps\cave_submaps\crashed_ufo.dmm"
|
||||
#include "maps\submaps\space_submaps\space.dm"
|
||||
#include "maps\submaps\surface_submaps\forest.dm"
|
||||
#include "maps\submaps\surface_submaps\forest_areas.dm"
|
||||
|
||||