Scripting Ability Handling Improvement and Copy Data

This commit is contained in:
Kam committed 2026-02-24 21:23:40 -05:00
1 parent 50fd3c1856
commit 90735e6866
14 files changed
+71 -30

No files matched your search

@@ -36,7 +36,12 @@ public class ScriptDataAbilities implements IDataAbilities {
@Override
public IAbility[] getAbilities() {
return data.getAbilities().toArray(new IAbility[0]);
List<Ability> live = data.getAbilities();
IAbility[] copies = new IAbility[live.size()];
for (int i = 0; i < live.size(); i++) {
copies[i] = live.get(i).deepCopy();
}
return copies;
}
@Override
@@ -73,7 +78,8 @@ public class ScriptDataAbilities implements IDataAbilities {
@Override
public IAbility getAbility(String abilityId) {
return data.getAbility(abilityId);
Ability a = data.getAbility(abilityId);
return a != null ? a.deepCopy() : null;
}
@Override
@@ -115,6 +121,17 @@ public class ScriptDataAbilities implements IDataAbilities {
@Override
public IAbility getCurrentAbility() {
Ability a = data.getCurrentAbility();
return a != null ? a.deepCopy() : null;
}
@Override
public IAbility getSourceAbility(String abilityId) {
return data.getAbility(abilityId);
}
@Override
public IAbility getSourceCurrentAbility() {
return data.getCurrentAbility();
}