/// <summary> /// 极坐标取点 /// </summary> public PosData func_PosPolar(SceneTriggerExecutor e, TriggerArg a, PosData pos, float distance, DirData dir) { PosData re = new PosData(); e.getScene().pos.polar2D(re, distance, dir); e.getScene().pos.addPos(re, pos); return(re); }
/// <summary> /// 点相加 /// </summary> public PosData func_AddPos(SceneTriggerExecutor e, TriggerArg a, PosData pos0, PosData pos1) { PosData re = new PosData(); re.copyPos(pos0); e.getScene().pos.addPos(re, pos1); return(re); }
/// <summary> /// 朝向 相加 /// </summary> public DirData func_AddDirFloat(SceneTriggerExecutor e, TriggerArg a, DirData dir, float value) { DirData re = new DirData(); re.copyDir(dir); re.direction = MathUtils.directionCut(re.direction + value); return(re); }
/// <summary> /// 朝向 相加 /// </summary> public DirData func_AddDir(SceneTriggerExecutor e, TriggerArg a, DirData dir, DirData value) { DirData re = new DirData(); re.copyDir(dir); re.direction = MathUtils.directionCut(re.direction + value.direction); //re.directionX+=dir2.directionX; return(re); }
/// <summary> /// 获取场景排放配置位置 /// </summary> public PosData func_GetScenePlacePos(SceneTriggerExecutor e, TriggerArg a, int instanceID) { ScenePlaceElementConfig eConfig = e.getScene().getPlaceConfig().getElement(instanceID); if (eConfig == null) { Ctrl.errorLog("未找到场景摆放配置", instanceID); return(null); } PosData re = new PosData(); re.setByFArr(eConfig.pos); return(re); }
/// <summary> /// 单位添加属性 /// </summary> public void func_UnitAddAttribute(SceneTriggerExecutor e, TriggerArg a, Unit unit, int type, int value) { unit.fight.getAttributeLogic().addOneAttribute(type, value); }
/// <summary> /// 移动到目标单位 /// </summary> public void func_MoveToUnit(SceneTriggerExecutor e, TriggerArg a, Unit unit, Unit target, float radius) { unit.aiCommand.moveTo(target, radius, null); }
/// <summary> /// 移除单位 /// </summary> public void func_RemoveUnit(SceneTriggerExecutor e, TriggerArg a, Unit unit) { unit.removeLater(); }
/// <summary> /// 强制击杀单位 /// </summary> public void func_KillUnit(SceneTriggerExecutor e, TriggerArg a, Unit unit) { e.getScene().fight.killUnit(unit); }
/// <summary> /// 对于某单位来说,点是否可走 /// </summary> public bool func_IsPosEnabled(SceneTriggerExecutor e, TriggerArg a, Unit unit, PosData pos) { Ctrl.warnLog("function func_IsPosEnabled,need implement"); return(false); }
/// <summary> /// 强制类型转化为点 /// </summary> public PosData func_AsPos(SceneTriggerExecutor e, TriggerArg a, object obj) { return((PosData)obj); }
/// <summary> /// 单位治疗生命千分比 /// </summary> public void func_UnitAddHpPercent(SceneTriggerExecutor e, TriggerArg a, Unit unit, int percent) { unit.fight.getAttributeLogic().addHPPercent(percent); }
/// <summary> /// 获取单位位置 /// </summary> public PosData func_GetUnitPos(SceneTriggerExecutor e, TriggerArg a, Unit unit) { return(unit.pos.getPos()); }
/// <summary> /// 创建并添加傀儡 /// </summary> public Unit func_CreateAddPuppet(SceneTriggerExecutor e, TriggerArg a, int id, int level, PosData pos, Unit master, int lastTime) { return(e.getScene().unitFactory.createAddPuppet(id, level, pos, master, lastTime)); }
/// <summary> /// 通过实例id获取单位 /// </summary> public Unit func_GetUnit(SceneTriggerExecutor e, TriggerArg a, int instanceID) { return(e.getScene().getUnit(instanceID)); }
/// <summary> /// 获取单位的战斗单位id /// </summary> public int func_GetUnitFightUnitID(SceneTriggerExecutor e, TriggerArg a, Unit unit) { return(unit.fight.getFightUnitConfig().id); }
/// <summary> /// 计算点距离 /// </summary> public float func_PosDistance(SceneTriggerExecutor e, TriggerArg a, PosData pos0, PosData pos1) { return(e.getScene().pos.calculatePosDistance2D(pos0, pos1)); }
/// <summary> /// 当前触发单位 /// </summary> public Unit func_TriggerUnit(SceneTriggerExecutor e, TriggerArg a) { return(((SceneTriggerEvent)a.evt).triggerUnit); }
/// <summary> /// 强制类型转化为单位 /// </summary> public Unit func_AsUnit(SceneTriggerExecutor e, TriggerArg a, object obj) { return((Unit)obj); }
/// <summary> /// 获取单位朝向 /// </summary> public DirData func_GetUnitDir(SceneTriggerExecutor e, TriggerArg a, Unit unit) { return(unit.pos.getDir()); }
/// <summary> /// 强制类型转化为朝向 /// </summary> public DirData func_AsDir(SceneTriggerExecutor e, TriggerArg a, object obj) { return((DirData)obj); }
/// <summary> /// c单位是否存活 /// </summary> public bool func_UnitIsAlive(SceneTriggerExecutor e, TriggerArg a, Unit unit) { return(unit.fight.isAlive()); }