Baystation12 merchant port (#3155)

Port of the merchant mechanics from baystation12.
All of the trader, prices and most essential system are done, as well the job datum and the like. Mapping the shuttle, the base and a new dock will be done in a later pr.
Also adds phazon construction and several other items used in this pr.
The chance of the merchant slow being open at round start can be changed via the config, it is 20% by default.
This commit is contained in:
Alberyk
2017-08-04 15:36:04 -03:00
committed by Erki
parent 0f072e15e9
commit b4fa4a8b3a
82 changed files with 4539 additions and 146 deletions
@@ -29,6 +29,9 @@
supernatural = 1
see_in_dark = 8
see_invisible = SEE_INVISIBLE_NOLIGHTING
tameable = FALSE
var/nullblock = 0
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
@@ -37,6 +40,7 @@
var/list/construct_spells = list()
var/can_repair = 0
/mob/living/simple_animal/construct/cultify()
return
@@ -35,6 +35,7 @@
heat_damage_per_tick = 20
mob_size = 10
tameable = FALSE
/mob/living/simple_animal/hostile/alien/drone
name = "alien drone"
@@ -81,6 +81,7 @@
/mob/living/simple_animal/hostile/scarybat/cult
faction = "cult"
supernatural = 1
tameable = FALSE
/mob/living/simple_animal/hostile/scarybat/cult/cultify()
return
@@ -13,6 +13,8 @@
mob_swap_flags = HUMAN|SIMPLE_ANIMAL|SLIME|MONKEY
mob_push_flags = ALLMOBS
tameable = FALSE
response_help = "pets"
response_disarm = "shoves"
response_harm = "harmlessly punches"
@@ -34,23 +36,23 @@
min_oxy = 0
max_co2 = 0
max_tox = 0
var/is_devouring = FALSE
/mob/living/simple_animal/hostile/true_changeling/Initialize()
. = ..()
if(prob(25))
icon_state = "horror_alt"
icon_living = "horror_alt"
/mob/living/simple_animal/hostile/true_changeling/Life()
..()
adjustBruteLoss(-10) //it will slowly heal brute damage, making fire/laser a stronger option
/mob/living/simple_animal/hostile/true_changeling/mind_initialize()
..()
mind.assigned_role = "Changeling"
/mob/living/simple_animal/hostile/true_changeling/death(gibbed)
..()
if(!gibbed)
@@ -110,7 +112,7 @@
last_special = world.time + 100
src.is_devouring = FALSE
return
/mob/living/simple_animal/hostile/true_changeling/verb/dart(mob/living/target as mob in oview())
set name = "Launch Bone Dart"
set desc = "Launches a Bone Dart at a target."
@@ -26,6 +26,8 @@
known_commands = list("stay", "stop", "attack", "follow", "dance", "boogie", "boogy")
tameable = FALSE
/mob/living/simple_animal/hostile/commanded/bear/hit_with_weapon(obj/item/O, mob/living/user, var/effective_force, var/hit_zone)
. = ..()
if(!.)
@@ -16,6 +16,8 @@
speed = 4
mob_size = 14
tameable = FALSE
/mob/living/simple_animal/hostile/creature/cult
faction = "cult"
@@ -14,6 +14,8 @@
health = 80
environment_smash = 2
tameable = FALSE
harm_intent_damage = 10
melee_damage_lower = 15
melee_damage_upper = 15
@@ -28,6 +28,8 @@
minbodytemp = 0
speed = 4
tameable = FALSE
/mob/living/simple_animal/hostile/hivebot/range
name = "Hivebot"
desc = "A smallish robot, this one is armed!"
@@ -26,6 +26,9 @@
/mob/living/simple_animal/hostile/proc/FindTarget()
if(!faction) //No faction, no reason to attack anybody.
return null
var/atom/T = null
stop_automated_movement = 0
for(var/atom/A in ListTargets(10))
@@ -36,6 +36,8 @@
faction = "mimic"
move_to_delay = 8
tameable = FALSE
/mob/living/simple_animal/hostile/mimic/FindTarget()
. = ..()
if(.)
@@ -37,3 +37,5 @@
heat_damage_per_tick = 15 //amount of damage applied if animal's body temperature is higher than maxbodytemp
cold_damage_per_tick = 10 //same as heat_damage_per_tick, only if the bodytemperature it's lower than minbodytemp
unsuitable_atoms_damage = 10
tameable = FALSE
@@ -49,6 +49,8 @@
var/has_loot = 1
faction = "malf_drone"
tameable = FALSE
/mob/living/simple_animal/hostile/retaliate/malf_drone/Initialize()
. = ..()
if(prob(5))
@@ -33,6 +33,8 @@
faction = "russian"
status_flags = CANPUSH
tameable = FALSE
/mob/living/simple_animal/hostile/russian/ranged
icon_state = "russianranged"
@@ -35,6 +35,8 @@
faction = "syndicate"
status_flags = CANPUSH
tameable = FALSE
/mob/living/simple_animal/hostile/syndicate/death()
..()
if(corpse)
@@ -159,6 +161,8 @@
max_n2 = 0
minbodytemp = 0
tameable = FALSE
/mob/living/simple_animal/hostile/viscerator/death()
..(null,"is smashed into pieces!")
var/T = get_turf(src)
@@ -100,6 +100,8 @@
var/can_nap = 0
var/icon_rest = null
var/tameable = TRUE //if you can tame it, used by the dociler for now
/mob/living/simple_animal/proc/beg(var/atom/thing, var/atom/holder)
visible_emote("gazes longingly at [holder]'s [thing]",0)
+7 -7
View File
@@ -329,16 +329,16 @@
character.buckled.set_dir(character.dir)
SSticker.mode.handle_latejoin(character)
if(character.mind.assigned_role != "Cyborg")
data_core.manifest_inject(character)
SSticker.minds += character.mind //Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
if(SSjobs.ShouldCreateRecords(rank))
if(character.mind.assigned_role != "Cyborg")
data_core.manifest_inject(character)
SSticker.minds += character.mind//Cyborgs and AIs handle this in the transform proc. //TODO!!!!! ~Carn
//Grab some data from the character prefs for use in random news procs.
AnnounceArrival(character, rank, join_message)
else
AnnounceCyborg(character, rank, join_message)
AnnounceArrival(character, rank, join_message)
else
AnnounceCyborg(character, rank, join_message)
qdel(src)