-
Notifications
You must be signed in to change notification settings - Fork 159
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
Add Assimilation checks to Colonization #115
base: master
Are you sure you want to change the base?
Conversation
It might be better to not reformat all of the imports? |
IDE formatted it when adding new imports automatically |
Might as well add a low conflict mode where it plays nice with non-overminds too. |
Something like the mode discussed here? |
Not really. Basically a mode where invading other players space is prevented. Low-conflict mode where you don't try and expand/mine from other players territory. |
@@ -43,5 +46,18 @@ export class DirectiveIncubate extends Directive { | |||
this.remove(); | |||
} | |||
} | |||
|
|||
// if reserved or owned by Overmind user - throw warning but don't remove? Included code to remove, just commented out. | |||
let AssimilatedRoomOwner = (typeof RoomIntel.roomOwnedBy(this.pos.roomName) === 'string' && RoomIntel.roomOwnedBy(this.pos.roomName) != MY_USERNAME && Assimilator.isAssimilated(RoomIntel.roomOwnedBy(this.pos.roomName)!)) |
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.
An example:
let roomOwner = RoomIntel.roomOwnedBy(this.pos.roomName);
let NonConflictRoomOwner = (typeof roomOwner === 'string' && roomOwner != MY_USERNAME && (getAggressionLevel() == Aggression.LOW || Assimilator.isAssimilated(roomOwner!)));
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.
Similarly, it could be renamed from isAssimilated to isFriendly, which checks if you are set non-conflict and have not blacklisted them (enemy list), or if they are assimilated/on your whitelist (allies)
This type of feature you're suggesting would need it's own PR, I do not intend to add a blacklist/whitelist for the player, I don't think it suits this codebase? |
Sure, happy to add it after your merge. I'm saying a setting to treat all other players reasonably well is a good stealth mode during a colony growing phase. Don't want your level 4 rooms picking fights over remotes with a level 8 room nearby. |
I agree @MatthewARoy, it probably have to be turned off for SWC, but attacking freely might be painting a target on your back. |
Also it's just not very effective. A lower level room is going to be wasting precious resources trying to fight an RCL 8 room that just spawns a single 50 part creep to defend it's remote. You'll lose that fight every time and drain your room. I'd propose having a new bot setting definition that describes it's behavior (not in this PR, but in general going forward)
Universal whitelist/blacklist helps define behavior for all of these, where assimilation is considered whitelist. End-level behavior for whitelist could be as far as assisting in ally roombuilding/defending. |
Pull request summary
Description:
I have added assimilation checks to the three colonization directives and the strategist
This is an attempt to getting Overmind to play better when neighboring other Overmind users.
I am open to additional things you want me to try and get this implemented on - I have only thought about the colonization directives - or if there is better ways for my code.
Added:
Changed:
Removed:
Fixed:
Testing checklist:
Not sure how to check this?
tsconfig
configurationStill currently testing strategist.ts, will update once done - looking for feedback currently