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

change up and add ninja objectives #2359

Merged
merged 4 commits into from
Dec 8, 2024
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
objective-ninja-kill-head-title = Execute {$targetName}, {CAPITALIZE($job)}
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@ steal-target-groups-notary-stamp = notary stamp
steal-target-groups-silvia = silvia

steal-target-groups-recruiter-pen = recruiter's pen

steal-target-groups-captains-cloak = captain's cloak
deltanedas marked this conversation as resolved.
Show resolved Hide resolved
81 changes: 81 additions & 0 deletions Resources/Prototypes/DeltaV/Objectives/ninja.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Kill

- type: entity
abstract: true
parent: [BaseNinjaObjective, BaseTeachLessonObjective]
deltanedas marked this conversation as resolved.
Show resolved Hide resolved
id: BaseNinjaTeachLessonObjective
description: This fool has spoken out against the Spider Clan. Teach them the error of their ways.
components:
- type: Objective
unique: true
icon:
sprite: Objects/Weapons/Throwable/throwing_star.rsi
state: icon
- type: TargetObjective
title: objective-condition-teach-person-title

- type: entity
parent: BaseNinjaTeachLessonObjective
id: NinjaTeachLessonRandomHeadObjective
components:
- type: PickRandomHead

- type: entity
parent: BaseNinjaTeachLessonObjective
id: NinjaTeachLessonRandomPersonObjective
components:
- type: PickRandomPerson

- type: entity
parent: [BaseNinjaObjective, BaseKillObjective]
deltanedas marked this conversation as resolved.
Show resolved Hide resolved
id: NinjaKillRandomHeadObjective
description: The Spider Clan is in need of more saboteur cyborgs. This head's brain will be perfect.
components:
- type: Objective
icon:
sprite: Objects/Weapons/Melee/energykatana.rsi
state: icon
- type: TargetObjective
title: objective-ninja-kill-head-title
- type: PickRandomHead
- type: KillPersonCondition
requireDead: true

# Steal

- type: entity
abstract: true
parent: [BaseNinjaObjective, BaseStealObjective]
id: BaseNinjaStealObjective
components:
- type: StealCondition
verifyMapExistence: false

- type: entity
parent: BaseNinjaStealObjective
id: NinjaIanDossierStealObjective
components:
- type: StealCondition
stealGroup: BookIanDossier

- type: entity
parent: BaseNinjaStealObjective
id: NinjaLuckyBillStealObjective
components:
- type: StealCondition
stealGroup: SpaceCashLuckyBill

- type: entity
parent: BaseNinjaStealObjective
id: NinjaCaptainsCloakStealObjective
components:
- type: StealCondition
stealGroup: CaptainsCloak

- type: entity
parent: BaseNinjaStealObjective
id: NinjaNotaryStampStealObjective
components:
- type: StealCondition
stealGroup: RubberStampNotary
owner: job-name-clerk
35 changes: 35 additions & 0 deletions Resources/Prototypes/DeltaV/Objectives/objectiveGroups.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
## Ninja
# Hacking things
- type: weightedRandom
id: NinjaHackingObjectiveGroups
weights:
NinjaObjectiveGroupHacking: 1

- type: weightedRandom
id: NinjaObjectiveGroupHacking
weights:
StealResearchObjective: 1
TerrorObjective: 1
MassArrestObjective: 1

# Extra objectives besides hacking things
- type: weightedRandom
id: NinjaBonusObjectiveGroups
weights:
NinjaObjectiveGroupKill: 1
NinjaObjectiveGroupSteal: 1

- type: weightedRandom
id: NinjaObjectiveGroupKill
weights:
NinjaTeachLessonRandomHeadObjective: 1
NinjaTeachLessonRandomPersonObjective: 0.5
NinjaKillRandomHeadObjective: 0.25 # rarely have to gib, but it'll be towards the end of the round anyway

# Steal random sentimental things, hopefully a traitor didn't do it first...
- type: weightedRandom
id: NinjaObjectiveGroupSteal
weights:
NinjaIanDossierStealObjective: 1
NinjaLuckyBillStealObjective: 1
NinjaCaptainsCloakStealObjective: 0.75
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,12 @@
sprite:
sprite: DeltaV/Mobs/Pets/silvia.rsi
state: silvia

# Ninja

- type: stealTargetGroup
id: CaptainsCloak
name: steal-target-groups-captains-cloak
sprite:
sprite: Clothing/Neck/Cloaks/cap.rsi
state: icon
2 changes: 1 addition & 1 deletion Resources/Prototypes/DeltaV/Objectives/traitor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
icon:
sprite: Objects/Weapons/Guns/Pistols/viper.rsi
state: icon
- type: TeachLessonCondition
- type: ObjectiveBlacklistRequirement
blacklist:
components:
Expand All @@ -78,4 +79,3 @@
- type: TargetObjective
title: objective-condition-teach-person-title
- type: PickRandomPerson
- type: TeachLessonCondition
4 changes: 2 additions & 2 deletions Resources/Prototypes/Entities/Clothing/Neck/cloaks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
- type: Sprite
sprite: Clothing/Neck/Cloaks/cap.rsi
- type: StealTarget
stealGroup: HeadCloak
stealGroup: CaptainsCloak # DeltaV: replaces HeadCloak for ninja

- type: entity
parent: [ClothingNeckBase, BaseCommandContraband]
Expand Down Expand Up @@ -113,7 +113,7 @@
- type: Sprite
sprite: Clothing/Neck/Cloaks/capcloakformal.rsi
- type: StealTarget
stealGroup: HeadCloak
stealGroup: CaptainsCloak # DeltaV: replaces HeadCloak for ninja

- type: entity
parent: ClothingNeckBase
Expand Down
13 changes: 10 additions & 3 deletions Resources/Prototypes/GameRules/events.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,12 +200,19 @@
- type: AntagLoadProfileRule
- type: AntagObjectives
objectives:
- StealResearchObjective
#- StealResearchObjective # DeltaV: Moved to random objectives
- DoorjackObjective
- SpiderChargeObjective
- TerrorObjective
- MassArrestObjective
#- TerrorObjective # DeltaV: Moved to random objectives
#- MassArrestObjective # DeltaV: Moved to random objectives
- NinjaSurviveObjective
- type: AntagRandomObjectives # DeltaV: Random objectives for hacking and killing
sets:
- groups: NinjaHackingObjectiveGroups
maxPicks: 2 # only pick 2 of 3 of them to reduce metagaming
- groups: NinjaBonusObjectiveGroups
maxPicks: 2 # 2 kill or steal objectives max
maxDifficulty: 100 # ignore difficulty, use maxPicks instead
- type: AntagSelection
agentName: ninja-round-end-agent-name
definitions:
Expand Down
2 changes: 1 addition & 1 deletion Resources/Prototypes/Objectives/thief.yml
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
- type: StealCondition
stealGroup: HeadCloak
minCollectionSize: 3
maxCollectionSize: 6
maxCollectionSize: 5 # DeltaV: Reduced from 6 since captain cloak no longer counts
- type: Objective
difficulty: 1.5

Expand Down
Loading