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

Utility AI - framework and Editor [wip] #6323

Draft
wants to merge 21 commits into
base: master
Choose a base branch
from

Conversation

Scoppio
Copy link
Collaborator

@Scoppio Scoppio commented Dec 28, 2024

Development of a Utility AI framework to be implemented with a bot (preferably on top of princess, preferably creating a new way to have her make decisions).

This PR currently only implements a few considerations and an AI Editor, this PR intends to allow people to test and evaluate the usability of the AI Editor.


TODO: More information on the Utility AI, how it works, how it integrates with Princessm etc.

Copy link

codecov bot commented Dec 28, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 28.36%. Comparing base (0ee346c) to head (fc8bb3f).
Report is 8 commits behind head on master.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #6323      +/-   ##
============================================
- Coverage     28.60%   28.36%   -0.24%     
  Complexity    14088    14088              
============================================
  Files          2784     2836      +52     
  Lines        273063   275337    +2274     
  Branches      48379    48565     +186     
============================================
+ Hits          78100    78102       +2     
- Misses       190983   193254    +2271     
- Partials       3980     3981       +1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

damageCache.clear();
}

public abstract double getBonusFactor(DecisionContext<IN_GAME_OBJECT, TARGETABLE> lastContext);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'lastContext' is never used.
}
}

double getBonusFactor(Decision<IN_GAME_OBJECT, TARGETABLE> scoreEvaluator);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'scoreEvaluator' is never used.

public interface Intelligence<IN_GAME_OBJECT, TARGETABLE> {

void update(Intelligence<IN_GAME_OBJECT, TARGETABLE> intelligence);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'intelligence' is never used.
void addDecisionScoreEvaluator(Decision<IN_GAME_OBJECT, TARGETABLE> scoreEvaluator);
List<Decision<IN_GAME_OBJECT, TARGETABLE>> getDecisions();
DecisionMaker<IN_GAME_OBJECT, TARGETABLE> getDecisionMaker();
double getBonusFactor(Decision<IN_GAME_OBJECT, TARGETABLE> scoreEvaluator);

Check notice

Code scanning / CodeQL

Useless parameter Note

The parameter 'scoreEvaluator' is never used.
return new LogitCurve(m, b, k, c);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
return objects;
}
}
logger.formattedErrorDialog("Invalid directory", "Input file {} is not a directory", inputFile);

Check warning

Code scanning / CodeQL

Unused format argument Warning

This format call refers to 0 argument(s) but supplies 1 argument(s).
try (MappingIterator<T> it = mapper.readerFor(clazz).readValues(file)) {
return it.readAll();
} catch (IOException e) {
logger.error(e, "Could not load file: {}", file);

Check warning

Code scanning / CodeQL

Unused format argument Warning

This format call refers to 0 argument(s) but supplies 1 argument(s).
@Scoppio Scoppio force-pushed the feat/tinkering-princess-ai branch from 82be31d to 572a2a2 Compare December 30, 2024 02:30
return new BandFilterCurve(m, b, k, c);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
return new BandPassCurve(m, b, k, c);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
}

public static DefaultCurve fromCurve(Curve curve) {
if (curve instanceof LinearCurve) {

Check notice

Code scanning / CodeQL

Chain of 'instanceof' tests Note

This if block performs a chain of 6 type tests - consider alternatives, e.g. polymorphism or the visitor pattern.
return new LinearCurve(m, b);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
return new LogisticCurve(m, b, k, c);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
return new ParabolicCurve(m, b, k);
}

public double evaluate(double x) {

Check notice

Code scanning / CodeQL

Missing Override annotation Note

This method overrides
Curve.evaluate
; it is advisable to add an Override annotation.
persistDataToUserData();
deleteUserTempFiles();
} catch (IOException e) {
logger.error(e, "Could not load data from file: {}", zipInput);

Check warning

Code scanning / CodeQL

Unused format argument Warning

This format call refers to 0 argument(s) but supplies 1 argument(s).
@Scoppio Scoppio force-pushed the feat/tinkering-princess-ai branch from 2f32e50 to 448b792 Compare December 31, 2024 02:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant