-
Notifications
You must be signed in to change notification settings - Fork 26
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
Port DeltaV syndicate objective "teach a lesson" #232
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- When porting Delta V or other fork content, please preserve the
DeltaV
namespace as_DeltaV
. - Additionally, try to trace any changes to the feature after initial PR and implement them too.
- Additionally, entities from
base_objectives.yml
andtraitor.yml
can be moved to the_Harmony
and/or_DeltaV
.
I will do a more thorough review once these points are addressed.
Thank you for working on this! Adding Admin input label while I am at it.
There has been very recent admin discussion of wanting more diverse objectives so the admin consensus will probably be yes. |
@FluffMe |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Namespaces are very wrong.
Can't review in detail from the phone, but I'll fix it in the next couple of days or on the weekend, unless you figure it out sooner.
Check for harmony C#-containing PRs for reference, if need be.
Does this replace the current kill/maroon objectives or does it add a new kind of objective for traitors? If it replaces them like they do on DeltaV, I foresee a big rule conflict and general bad vibes. There are many traitor tools and methods of killing that are designed to round remove, should this no longer ever be a requirement these sorts of tools will just be rulebreaks if they are used All of this doesn't really apply should it be added as a separate objective, for then discretion and use of tools can be scaled to the task at hand. |
It does not replace kill and maroon, it is merely a diffreent alternative to add variety |
In that case all I wrote was just nonsense rambling. I'm a-okay with this as a new objective, but I think the name should be changed "Teach (name) a lesson" doesn't make any sense. When somebody wakes up from being dead they shouldn't be remembering anything that happened, so there is no lesson being taught here. If there was something with leaving a business card on a dead person so they find it when they wake up maybe that'd make more sense, but that'd take some extra programming stuff that I don't know if anybody is interested in. Something like "Kill them once" would be very basic and not very interesting, but would be less vague and nonsense and get the idea across a million times better. |
Well we have cards in game, so thats up to player choice. And the name can be changed to be more descriptive thats just what DeltaV/SS13 had it as. A more vague objective allows players to come up with their own reason for why they murder this guy, I agree with that sentiment |
+1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First big bunch of required changes.
After you are done with this you should also implement DeltaV-Station/Delta-v#2412 and test everything properly. Milon's PR also properly sets the DeltaV namespaces.
Trace any other changes or PRs to these files that might be important.
Once this work is done, please test it thoroughly and make sure to keep as much of DeltaV code intact as possible. If you make any changes you must declare them per AGPL licensing. No renaming of the files where it's not needed, etc.
This should be a lot of work for someone with no C# experience, so thank you for tackling this. Feel free to ask questions on Discord if you need help. Experienced contributors should be able to help you.
Good luck!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wrong location for a component. Not sure why you renamed it too.
Should be Content.Server/_DeltaV/Objectives/Components/TeachLessonConditionComponent.cs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wrong location for a system. And ststem is not a word. Not sure why you renamed it too. Names of CS files should match the class name.
Should be Content.Server/_DeltaV/Objectives/Systems/TeachLessonConditionSystem.cs
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DeltaV content. Wrong placement and renamed for some reason.
Relocate to Resources/Locale/en-US/_DeltaV/objectives/conditions/teach-person.ftl
@@ -111,3 +111,4 @@ | |||
id: BaseCodeObjective | |||
components: | |||
- type: CodeCondition | |||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unnecessary change to upstream file. Please revert.
# teach lesson | ||
- type: entity | ||
abstract: true | ||
parent: BaseTargetObjective | ||
id: BaseTeachLessonObjective | ||
components: | ||
- type: Objective | ||
unique: false | ||
icon: | ||
sprite: Objects/Weapons/Melee/fireaxe.rsi | ||
state: icon | ||
- type: ObjectiveBlacklistRequirement | ||
blacklist: | ||
components: | ||
- SocialObjective |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This prototype should be declared in traitor.yml
with TeachLessonRandomPersonObjective
instead
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
DeltaV content. Wrong location.
Should be Resources/Prototypes/_DeltaV/Objectives/traitor.yml
using Content.Shared.GameTicking; | ||
using Content.Shared.Mind; | ||
using Content.Shared.Objectives.Components; | ||
using DeltaV.Server.Objectives.Components; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not needed and wrong. Remove this line (Line 6)
Content.Server/_DeltaV/Objectives/Components/Teachalessonconditionststem.cs
Outdated
Show resolved
Hide resolved
Content.Server/_DeltaV/Objectives/Systems/TeachAlessonComponent.cs
Outdated
Show resolved
Hide resolved
…t.cs Co-authored-by: FluffMe <1780586+FluffMe@users.noreply.github.com> Signed-off-by: Ermucat <190304574+Ermucat@users.noreply.github.com>
Marked as draft to avoid constant test runs on Work In Progress. Undraft when it's done. |
…tionststem.cs Co-authored-by: FluffMe <1780586+FluffMe@users.noreply.github.com> Signed-off-by: Ermucat <190304574+Ermucat@users.noreply.github.com>
3c7a76b
to
bb3a76c
Compare
About the PR
Ported DeltaV-Station/Delta-v#2184 from deltaV to harmony(Is ported the right word? I guess it is kinda stealing that might be frowned apon idk)
Why / Balance
Currently the Kill or Maroon objective is the only way of doing murder within your objectives, but with the limitation that the murdered one must be permanant killed. This system CAN be anti-fun for the victim and the murderer, I dont think it should be removed but providing a alternative I feel is needed
Technical details
Added new folder to Harmony/Locale/En-us
Added Teachalessoncomponent
added Teachalessonconditionsystem
added things to traitor objective ymls
Media
Yay.mp4
Requirements
Breaking changes
Changelog
🆑