mirror of
https://github.com/Retera/WarsmashModEngine.git
synced 2022-07-31 17:38:59 +02:00
Update jass2 with UnitAddAbility native
This commit is contained in:
parent
9c9f1633fd
commit
35a489b1f8
@ -82,9 +82,11 @@ import com.etheller.warsmash.viewer5.handlers.w3x.simulation.CUnitType;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.CWidget;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.CAbility;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.GetAbilityByRawcodeVisitor;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.generic.CLevelingAbility;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.inventory.CAbilityInventory;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.mine.CAbilityBlightedGoldMine;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.targeting.AbilityPointTarget;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.types.CAbilityType;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.ai.AIDifficulty;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.CPlayerAPI;
|
||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.War3MapConfig;
|
||||
@ -3205,6 +3207,34 @@ public class Jass2 {
|
||||
return null;
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("UnitAddAbility", new JassFunction() {
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
final TriggerExecutionScope triggerScope) {
|
||||
final CUnit whichUnit = arguments.get(0).visit(ObjectJassValueVisitor.getInstance());
|
||||
final int abilityId = arguments.get(1).visit(IntegerJassValueVisitor.getInstance());
|
||||
final War3ID rawcode = new War3ID(abilityId);
|
||||
|
||||
final CAbilityType<?> abilityType = CommonEnvironment.this.simulation.getAbilityData()
|
||||
.getAbilityType(rawcode);
|
||||
if (abilityType == null) {
|
||||
System.err.println(
|
||||
"UnitAddAbility: The requested ability has not been programmed yet: " + rawcode);
|
||||
return BooleanJassValue.FALSE;
|
||||
}
|
||||
|
||||
final CLevelingAbility existingAbility = whichUnit
|
||||
.getAbility(GetAbilityByRawcodeVisitor.getInstance().reset(rawcode));
|
||||
if (existingAbility != null) {
|
||||
return BooleanJassValue.FALSE;
|
||||
}
|
||||
final CAbility ability = abilityType
|
||||
.createAbility(CommonEnvironment.this.simulation.getHandleIdAllocator().createId());
|
||||
whichUnit.add(CommonEnvironment.this.simulation, ability);
|
||||
|
||||
return BooleanJassValue.TRUE;
|
||||
}
|
||||
});
|
||||
jassProgramVisitor.getJassNativeManager().createNative("UnitItemInSlot", new JassFunction() {
|
||||
@Override
|
||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||
|
@ -25,7 +25,7 @@ public class WarsmashConstants {
|
||||
// find it yet so I used this
|
||||
public static final String DEFAULT_STRING = "Default string";
|
||||
|
||||
public static final boolean CATCH_CURSOR = true;
|
||||
public static final boolean CATCH_CURSOR = false;
|
||||
public static final boolean VERBOSE_LOGGING = false;
|
||||
public static final boolean ENABLE_DEBUG = false;
|
||||
public static final char SPECIAL_ESCAPE_KEYCODE = 0x7E;
|
||||
@ -36,7 +36,7 @@ public class WarsmashConstants {
|
||||
// workaround to fix it if you need the local files
|
||||
// to take priority over built-ins for tilesets.
|
||||
public static final boolean FIX_FLAT_FILES_TILESET_LOADING = false;
|
||||
public static final boolean ENABLE_MUSIC = false;
|
||||
public static final boolean ENABLE_MUSIC = true;
|
||||
public static final boolean LOAD_UNITS_FROM_WORLDEDIT_DATA = false;
|
||||
public static final boolean CRASH_ON_INCOMPATIBLE_132_FEATURES = false;
|
||||
public static final boolean FIRE_DEATH_EVENTS_ON_REMOVEUNIT = false;
|
||||
|
Loading…
Reference in New Issue
Block a user