Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Космические торговцы!!!!! #13391

Merged
merged 55 commits into from
Sep 29, 2024
Merged
Show file tree
Hide file tree
Changes from 50 commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
3e382af
космические торговцы
Tap0r Jul 29, 2024
b419ffb
фикусы
Tap0r Jul 29, 2024
67e8cf5
суммари
Tap0r Jul 30, 2024
fbe5556
ещё
Tap0r Jul 30, 2024
5e93708
ладно у них не будет кучи мусора в трюме
Tap0r Jul 30, 2024
dbe08b9
переделываем под айтемс рандом
Tap0r Jul 31, 2024
f58727e
обошёл всё что есть в билде чтобы составить эти списки ахуеть можно
Tap0r Jul 31, 2024
c22c343
проебал две запятые
Tap0r Jul 31, 2024
ccb2ccf
!!!!
Tap0r Aug 1, 2024
a96f44e
всякое
Tap0r Aug 1, 2024
7326ebc
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Aug 1, 2024
abc72c1
щас буду мапдиф править
Tap0r Aug 1, 2024
29fd77a
готов к полёту
Tap0r Aug 1, 2024
fa88427
Update trader_shuttle.dm
Tap0r Aug 1, 2024
060e595
копипаст копипаст!!!!!
Tap0r Aug 1, 2024
7e04c11
в пизду этот копипаст я своё напишу
Tap0r Aug 1, 2024
17aafbb
добавляем им худ
Tap0r Aug 1, 2024
a797ef3
вот щас работает почти как надо
Tap0r Aug 2, 2024
88ee15d
должно быть всё
Tap0r Aug 2, 2024
ea4c388
Update objects.dm
Tap0r Aug 2, 2024
832c89b
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Aug 2, 2024
8635efd
фух бля
Tap0r Aug 2, 2024
6bfb928
исправил док тэги
Tap0r Aug 3, 2024
d62bb81
Merge branch 'master' into space_traders
Tap0r Aug 3, 2024
ae7b992
минус труба
Tap0r Aug 3, 2024
5928914
Update gamma.dmm
Tap0r Aug 3, 2024
ffba78b
Update gamma.dmm
Tap0r Aug 3, 2024
281b01d
космобайк пока
Tap0r Aug 4, 2024
4b3cddb
перенёс анонс
Tap0r Aug 9, 2024
a2e36b8
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Aug 9, 2024
20268a9
Update spawners.dm
Tap0r Aug 9, 2024
dbdc230
Update code/datums/spawners_menu/spawners.dm
Tap0r Aug 15, 2024
e69c310
саммари
Tap0r Aug 18, 2024
4e6710a
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Aug 18, 2024
42037ee
мапконфликты пока
Tap0r Aug 18, 2024
dd6ce22
вроде перенёс но меня пугает что никакие изменения ко мне не подтянулись
Tap0r Aug 18, 2024
d4e7db6
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Aug 18, 2024
d07c9bf
Update gamma.dmm
Tap0r Aug 18, 2024
4986484
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Sep 14, 2024
9e421c6
исправляем конфликты
Tap0r Sep 14, 2024
da49e84
Update code/game/gamemodes/objectives/traders_objectives.dm
Tap0r Sep 14, 2024
8bc7067
Update traders_objectives.dm
Tap0r Sep 14, 2024
e51da86
сумари
Tap0r Sep 14, 2024
08b6ab3
всё
Tap0r Sep 14, 2024
a8eb96d
Update code/game/machinery/computer/trader_shuttle.dm
Tap0r Sep 15, 2024
5c2a411
Update code/game/gamemodes/objectives/traders_objectives.dm
Tap0r Sep 15, 2024
bb23fb3
Update boxstation.dmm
Tap0r Sep 15, 2024
54737bd
Merge branch 'space_traders' of https://github.com/Tap0r/TauCetiClass…
Tap0r Sep 15, 2024
a8e69e0
Merge remote-tracking branch 'upstream/master' into space_traders
Tap0r Sep 15, 2024
20951b9
конфликты офф
Tap0r Sep 15, 2024
c87d743
исправления
Tap0r Sep 23, 2024
aed09b9
ну пусть будет цель на 20к бачей
Tap0r Sep 23, 2024
640db00
твики
Tap0r Sep 23, 2024
c011c25
девайс
Tap0r Sep 23, 2024
090c2ea
gamma fix
Tap0r Sep 28, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions code/__DEFINES/gamemodes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
#define F_XENOMORPH_HIVE "Alien Hivemind"
#define F_ZOMBIES "Zobmies"
#define F_REPLICATORS "Replicators"
#define F_SPACE_TRADERS "Space Traders"

// Role IDs
#define ABDUCTOR_AGENT "Abductor Agent"
Expand Down Expand Up @@ -67,6 +68,7 @@
#define REPLICATOR "Replicator"
#define PIRATE "Pirate"
#define PRISONER "Prisoner"
#define SPACE_TRADER "Space Trader"
#define THIEF "Thief"

////////////////////// GREETS /////////////////////////
Expand Down
1 change: 1 addition & 0 deletions code/_globalvars/lists/names.dm
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ var/global/list/pirate_second = file2list("static/names/piratesecond.txt")
var/global/list/moth_first = file2list("static/names/moth_first.txt")
var/global/list/moth_second = file2list("static/names/moth_second.txt")
var/global/list/serpentid_names = file2list("static/names/serpentid.txt")
var/global/list/tajaran_male_first = file2list("static/names/tajaran_male_first.txt")

// Traitors key-words
var/global/list/rus_nouns
Expand Down
6 changes: 6 additions & 0 deletions code/datums/announcements/events.dm
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,9 @@
name = "Event: Icarus Recovered"
subtitle = "Тревога. Сбойные дроны"
message = "Контроль дронов ВКН Икар разочарован в потере боевого крыла. Выжившие дроны будут восстановлены."

/datum/announcement/centcomm/space_traders
name = "Event: Space Traders"
subtitle = "Космоторговцы."
message = "Мы получили и одобрили запрос на стыковку от группы космоторговцев. " + \
"У них кончаются припасы и есть товары для продажи. Ожидайте гостей."
33 changes: 33 additions & 0 deletions code/datums/outfits/misc/space_traders.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/datum/outfit/space_trader
survival_box = TRUE
l_ear = /obj/item/device/radio/headset

/datum/outfit/space_trader/dealer
name = "Space Trader Dealer"
uniform = /obj/item/clothing/under/lawyer/oldman
suit = /obj/item/clothing/suit/storage/postal_dude_coat
glasses = /obj/item/clothing/glasses/sunglasses
shoes = /obj/item/clothing/shoes/boots
back = /obj/item/weapon/storage/backpack/satchel/norm

r_pocket = /obj/item/weapon/reagent_containers/spray/pepper

/datum/outfit/space_trader/guard
name = "Space Trader Guard"
uniform = /obj/item/clothing/under/syndicate
suit = /obj/item/clothing/suit/storage/flak
glasses = /obj/item/clothing/glasses/sunglasses
shoes = /obj/item/clothing/shoes/boots
belt = /obj/item/weapon/storage/belt/security/ert
back = /obj/item/weapon/storage/backpack/satchel/sec
gloves = /obj/item/clothing/gloves/security
suit_store = /obj/item/weapon/gun/energy/gun
backpack_contents = list(/obj/item/clothing/head/helmet)

r_pocket = /obj/item/clothing/accessory/holster

/datum/outfit/space_trader/porter
name = "Space Trader Porter"
uniform = /obj/item/clothing/under/rank/cargotech
shoes = /obj/item/clothing/shoes/boots/work
back = /obj/item/weapon/storage/backpack
91 changes: 91 additions & 0 deletions code/datums/spawners_menu/spawners.dm
Original file line number Diff line number Diff line change
Expand Up @@ -746,3 +746,94 @@
var/datum/role/wizard/R = SSticker.mode.CreateRole(/datum/role/wizard, H)
R.rename = FALSE
setup_role(R, TRUE)

/*
* SPACE TRADERS
*/
/datum/spawner/space_trader
name = "Космический торговец"
desc = "Космический торговец."

ranks = list(ROLE_GHOSTLY)

register_only = TRUE
time_for_registration = 0.5 MINUTES

time_while_available = 4 MINUTES
var/money = 100
var/outfit

/datum/spawner/space_trader/spawn_body(mob/dead/spectator)
var/spawnloc = pick_spawn_location()
var/client/C = spectator.client

var/mob/living/carbon/human/H = new
C.create_human_apperance(H)
H.key = C.key
H.forceMove(spawnloc)
equip(H)

var/datum/faction/space_traders/F = find_faction_by_type(/datum/faction/space_traders)
add_faction_member(F, H, TRUE, TRUE)

/datum/spawner/space_trader/proc/equip(mob/living/carbon/human/H)
H.equipOutfit(outfit)

var/datum/money_account/MA = create_random_account_and_store_in_mind(H, money)
var/obj/item/weapon/card/id/cargo/C = new(H)
C.rank = "Space Trader"
C.assignment = C.rank
C.assign(H.real_name)
C.access = list(access_space_traders)
C.associated_account_number = MA.account_number
H.equip_or_collect(C, SLOT_WEAR_ID)

var/obj/item/device/pda/pda = new(H)
pda.assign(H.real_name)
pda.ownrank = C.rank
pda.owner_account = MA.account_number
pda.owner_fingerprints += C.fingerprint_hash
MA.owner_PDA = pda
H.equip_or_collect(pda, SLOT_R_STORE)

/datum/spawner/space_trader/dealer
name = "Космоторговец барыга"
desc = "Барыга, владеющий торговым судном и товаром на нём. Заработайте столько денег, сколько сможете увезти!"
spawn_landmark_name = "Space Trader Dealer"
money = 200
outfit = /datum/outfit/space_trader/dealer

/datum/spawner/space_trader/guard
name = "Космоторговец охранник"
desc = "ЧОПовец, нанятый барыгой для охраны судна и товара на нём от станционных воришек и космических пиратов."
spawn_landmark_name = "Space Trader Guard"
outfit = /datum/outfit/space_trader/guard

/datum/spawner/space_trader/porter
name = "Космоторговец посыльный"
desc = "Таяран грузчик, работающий на барыгу. Таскайте грузы, выставляйте товары на продажу, помогите барыге обогатиться и не забудьте спросить свою долю!"
spawn_landmark_name = "Space Trader Porter"
money = 20
outfit = /datum/outfit/space_trader/porter

/datum/spawner/space_trader/porter/spawn_body(mob/dead/spectator)
var/spawnloc = pick_spawn_location()
var/client/C = spectator.client

var/mob/living/carbon/human/H
var/new_name

if(is_alien_whitelisted_banned(spectator, TAJARAN) || !is_alien_whitelisted(spectator, TAJARAN))
H = new
else
H = new(null, TAJARAN)
new_name = capitalize(pick(global.tajaran_male_first)) + " " + capitalize(pick(global.last_names))

C.create_human_apperance(H, new_name)
H.key = C.key
H.forceMove(spawnloc)
equip(H)

var/datum/faction/space_traders/F = find_faction_by_type(/datum/faction/space_traders)
add_faction_member(F, H, TRUE, TRUE)

21 changes: 11 additions & 10 deletions code/game/area/shuttle_areas.dm
Original file line number Diff line number Diff line change
Expand Up @@ -262,17 +262,19 @@
icon_state = "shuttlered2"
looped_ambience = 'sound/ambience/loop_space.ogg'

//Administration Centcom Shuttle
/area/shuttle/administration/centcom
name = "Administration Shuttle Centcom"
cases = list("административный шаттл", "административного шаттла", "административному шаттлу", "административный шаттл", "административным шаттлом", "административном шаттле")
//Space Traders Shuttle
/area/shuttle/trader
Tap0r marked this conversation as resolved.
Show resolved Hide resolved
name = "Trader Shuttle"
cases = list("торговый шаттл", "торгового шаттла", "торговому шаттлу", "торговый шаттл", "торговым шаттлом", "торговом шаттле")
icon_state = "shuttlered"

/area/shuttle/administration/station
name = "Administration Shuttle"
cases = list("административный шаттл", "административного шаттла", "административному шаттлу", "административный шаттл", "административным шаттлом", "административном шаттле")
/area/shuttle/trader/station
name = "Trader Shuttle Station"
ambience = 'sound/ambience/space_traders.ogg'

/area/shuttle/trader/space
name = "Trader Shuttle Space"
icon_state = "shuttlered2"
looped_ambience = 'sound/ambience/loop_space.ogg'

//Vox shuttle
/area/shuttle/vox/arkship
Expand Down Expand Up @@ -390,7 +392,6 @@ var/global/list/centcom_shuttle_areas = list (
/area/shuttle/escape_pod3/centcom,
/area/shuttle/escape_pod4/centcom,
/area/shuttle/transport1/centcom,
/area/shuttle/administration/centcom,
/area/shuttle/specops/centcom,
/area/shuttle/officer/centcom
)
Expand All @@ -403,7 +404,7 @@ var/global/list/station_shuttle_areas = list (
/area/shuttle/escape_pod3/station,
/area/shuttle/escape_pod4/station,
/area/shuttle/transport1/station,
/area/shuttle/administration/station,
/area/shuttle/trader/station,
/area/shuttle/specops/station,
/area/shuttle/officer/station,
/area/shuttle/supply/station,
Expand Down
33 changes: 33 additions & 0 deletions code/game/gamemodes/factions/space_traders.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/obj/effect/landmark/space_traders/product
name = "Space Traders Product"
icon = 'icons/obj/storage.dmi'
icon_state = "crate"

/obj/effect/landmark/space_traders/dealer
name = "Space Trader Dealer"
icon = 'icons/mob/landmarks.dmi'
icon_state = "Quartermaster"

/obj/effect/landmark/space_traders/guard
name = "Space Trader Guard"
icon = 'icons/mob/landmarks.dmi'
icon_state = "Blueshield Officer"

/obj/effect/landmark/space_traders/porter
name = "Space Trader Porter"
icon = 'icons/mob/landmarks.dmi'
icon_state = "Trader Porter"

/datum/faction/space_traders
name = F_SPACE_TRADERS
ID = F_SPACE_TRADERS

logo_state = "space_traders"
max_roles = 3
roletype = /datum/role/space_trader

/datum/faction/space_traders/forgeObjectives()
if(!..())
return FALSE
AppendObjective(/datum/objective/make_money/faction/traders)
return TRUE
102 changes: 102 additions & 0 deletions code/game/gamemodes/objectives/traders_objectives.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
/datum/objective/make_money
var/required_money

/datum/objective/make_money/New()
explanation_text = "Заработать [required_money] кредитов. В конце смены они должны находиться на вашем счёте."

/datum/objective/make_money/check_completion()
if(owner)
var/datum/money_account/MA = get_account(owner.get_key_memory(MEM_ACCOUNT_NUMBER))
if(MA.money >= required_money)
return OBJECTIVE_WIN
return OBJECTIVE_LOSS

/datum/objective/make_money/faction/check_completion()
if(faction)
var/total_money = 0
for(var/datum/role/R in faction.members)
var/datum/money_account/MA = get_account(R.antag.get_key_memory(MEM_ACCOUNT_NUMBER))
total_money += MA.money
if(total_money >= required_money)
return OBJECTIVE_WIN
return OBJECTIVE_LOSS

/datum/objective/make_money/faction/traders
required_money = 40000


/datum/objective/trader_purchase
var/list/items = list()
var/static/possible_items[] = list(
"эмиттер" = /obj/machinery/power/emitter,
"инкубатор вирусов" = /obj/machinery/disease2/incubator,
"хим диспенсер" = /obj/machinery/chem_dispenser,
"микроволновку" = /obj/machinery/kitchen_machine/microwave,
"бипски" = /obj/machinery/bot/secbot/beepsky,
"биогенератор" = /obj/machinery/biogenerator,
"экстрактор семян" = /obj/machinery/seed_extractor,
"бухломат" = /obj/machinery/vending/boozeomat,
"переносной флэшер" = /obj/machinery/flasher/portable,
"шкаф главы службы безопасности" = /obj/structure/closet/secure_closet/hos,
"канистру азота" = /obj/machinery/portable_atmospherics/canister/nitrogen,
"факс" = /obj/machinery/faxmachine,
"ядерную боеголовку" = /obj/machinery/nuclearbomb,
"раздатчик атмосферных труб" = /obj/machinery/pipedispenser,
"кошку главврача Дасти" = /mob/living/simple_animal/cat/dusty,
"плазменный дробовик" = /obj/item/weapon/gun/plasma/p104sass,
"ручной телепортер" = /obj/item/weapon/hand_tele,
"тыквяк" = /obj/item/weapon/reagent_containers/food/snacks/grown/gourd,
"имплант защиты разума" = /obj/item/weapon/implantcase/mindshield,
"смирительную рубашку" = /obj/item/clothing/suit/straight_jacket,
"капитанское жёлтое мыло" = /obj/item/weapon/reagent_containers/food/snacks/soap/deluxe,
"мулбота" = /obj/machinery/bot/mulebot,
"новогоднюю ёлку" = /obj/item/device/flashlight/lamp/fir,
"двухстволку бармена" = /obj/item/weapon/gun/projectile/revolver/doublebarrel,
"джукбокс" = /obj/machinery/media/jukebox/bar,
"полностью собранное ядро ИИ" = /obj/structure/AIcore/deactivated,
"алтарь священника" = /obj/structure/altar_of_gods)

/datum/objective/trader_purchase/New()
var/indx = rand(1, possible_items.len)
var/offset = rand(1, possible_items.len - 1)
var/new_indx = (indx + offset) % possible_items.len
items += possible_items[indx]
items += possible_items[new_indx == 0 ? possible_items.len : new_indx]
explanation_text = "Достать и притащить на наш шаттл [items[1]] и [items[2]]."

/datum/objective/trader_purchase/check_completion()
var/list/areas = list(/area/shuttle/trader/space, /area/shuttle/trader/station)
var/list/checks = list(FALSE, FALSE)
for(var/type in areas)
for(var/obj/O in get_area_by_type(type))
if(istype(O, possible_items[items[1]]))
checks[1] = TRUE
else if(istype(O, possible_items[items[2]]))
checks[2] = TRUE
if(checks[1] && checks[2])
return OBJECTIVE_WIN
else if(checks[1] || checks[2])
return OBJECTIVE_HALFWIN
return OBJECTIVE_LOSS


/datum/objective/traders_escape
explanation_text = "Живыми улететь на своём шаттле со станции."

/datum/objective/traders_escape/check_completion()
var/counter = 0
if(faction)
var/list/mems = faction.members
for(var/datum/role/R in mems)
var/mob/M = R.antag.current
if(!M || ((M.stat == DEAD) && !M.fake_death) || isbrain(M) || issilicon(M)) // alive?
continue
if(istype(get_area(M), /area/shuttle/trader/space)) // in space on shuttle?
counter++
if(counter == mems.len) // ALL TRADERS ESCAPE ALIVE
return OBJECTIVE_WIN
else if(counter) // AT LEAST ONE TRADER ESCAPE ALIVE
return OBJECTIVE_HALFWIN
else
return OBJECTIVE_LOSS
return OBJECTIVE_LOSS
25 changes: 25 additions & 0 deletions code/game/gamemodes/roles/space_trader.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
/datum/role/space_trader
name = SPACE_TRADER
id = SPACE_TRADER

disallow_job = TRUE
logo_state = "space_traders"

/datum/role/space_trader/Greet(greeting, custom)
. = ..()
to_chat(antag.current, {"<span class='notice'><b>Вы - космический торговец. Всего вас трое.
<BR>1. Барыга - он главный, он владеет всем, он нанимает остальных, он отдаёт приказы, он решает что делать.
Слушайтесь его и помогайте ему.
<BR>2. ЧОПовец - охранник корабля и товара, у него есть ствол и полное право использовать его на территории корабля.
Но даже в мыслях не имейте стреляться с кем-то на станции, это явно не понравится службе безопасности.
<BR>3. Грузчик - мальчик на побегушках, таскает товар, гоняет на станцию за едой и припасами.
<BR>Кем бы вы ни были, вы все имеете 3 общие цели.
<BR>1. Заработать денег.
В трюме корабля навалом товара, сбудьте его по как можно большей цене, торгуйтесь за каждую безделушку.
Не весь товар легален. В трюме, справа от постера, есть тайник, никто со станции не сможет его открыть, можете спокойно прятать там контрабанду.
Если товар распродан, оказывайте услуги, ради денег вы даже можете нарушить закон, но будьте готовы к соответствующей реакции со стороны службы безопасности.
<BR>2. Достать на шаттл какие-то вещи.
Для достижения цели можете делать что угодно. Попытаетесь вы выкупить или украсть, подрядите кого-то сделать или достать.
Главное чтобы нужные вещи были на корабле, когда смена на станции закончится.
<BR>3. Улететь со станции живыми. Крайне желательно сделать это в полном составе.
------------------</b></span>"})
4 changes: 3 additions & 1 deletion code/game/jobs/access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
/var/const/access_engineering_lobby = 71
/var/const/access_medbay_storage = 72
/var/const/access_oldstation = 73
/var/const/access_space_traders = 74

//BEGIN CENTCOM ACCESS
/*Should leave plenty of room if we need to add more access levels.
Expand Down Expand Up @@ -554,7 +555,8 @@
"Marine",
"Marine Squad Leader",
"Senior Engineer",
"Senior Medic")
"Senior Medic",
"Space Trader")

/obj/proc/GetJobName() //Used in secHUD icon generation
if (!istype(src, /obj/item/device/pda) && !istype(src,/obj/item/weapon/card/id))
Expand Down
Loading
Loading