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.CWidget;
|
||||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.CAbility;
|
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.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.inventory.CAbilityInventory;
|
||||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.abilities.mine.CAbilityBlightedGoldMine;
|
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.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.ai.AIDifficulty;
|
||||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.CPlayerAPI;
|
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.CPlayerAPI;
|
||||||
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.War3MapConfig;
|
import com.etheller.warsmash.viewer5.handlers.w3x.simulation.config.War3MapConfig;
|
||||||
@ -3205,6 +3207,34 @@ public class Jass2 {
|
|||||||
return null;
|
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() {
|
jassProgramVisitor.getJassNativeManager().createNative("UnitItemInSlot", new JassFunction() {
|
||||||
@Override
|
@Override
|
||||||
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
public JassValue call(final List<JassValue> arguments, final GlobalScope globalScope,
|
||||||
|
@ -25,7 +25,7 @@ public class WarsmashConstants {
|
|||||||
// find it yet so I used this
|
// find it yet so I used this
|
||||||
public static final String DEFAULT_STRING = "Default string";
|
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 VERBOSE_LOGGING = false;
|
||||||
public static final boolean ENABLE_DEBUG = false;
|
public static final boolean ENABLE_DEBUG = false;
|
||||||
public static final char SPECIAL_ESCAPE_KEYCODE = 0x7E;
|
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
|
// workaround to fix it if you need the local files
|
||||||
// to take priority over built-ins for tilesets.
|
// to take priority over built-ins for tilesets.
|
||||||
public static final boolean FIX_FLAT_FILES_TILESET_LOADING = false;
|
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 LOAD_UNITS_FROM_WORLDEDIT_DATA = false;
|
||||||
public static final boolean CRASH_ON_INCOMPATIBLE_132_FEATURES = false;
|
public static final boolean CRASH_ON_INCOMPATIBLE_132_FEATURES = false;
|
||||||
public static final boolean FIRE_DEATH_EVENTS_ON_REMOVEUNIT = false;
|
public static final boolean FIRE_DEATH_EVENTS_ON_REMOVEUNIT = false;
|
||||||
|
Loading…
Reference in New Issue
Block a user