void makeRequest() { try { //go to gold_page if ((requestTarget & RequestTarget.Gold_page) != 0) { //kiem tra xem co adv nao active hay ko, //neu co bo sung vao requestTarget de cap nhat //ngay lap tuc, khong doi lan request sau BUSAction.AutoLoadDefaultPage(); } int iAdvstatus = BUSAction.CheckAdvStatus(); if ((iAdvstatus & (int)DTOAccount.ADV_ACTIVE.MAYOR) != 0) { requestTarget |= RequestTarget.Towns; requestTarget |= RequestTarget.Building; } if ((iAdvstatus & (int)DTOAccount.ADV_ACTIVE.GENERAL) != 0) { requestTarget |= RequestTarget.Troops; //check thêm move } if ((iAdvstatus & (int)DTOAccount.ADV_ACTIVE.SCIENTIST) != 0) { requestTarget |= RequestTarget.Research; } if ((iAdvstatus & (int)DTOAccount.ADV_ACTIVE.DIPLOMAT) != 0) { requestTarget |= RequestTarget.Diplomacy; } //if then else request tung cai' trong request target //hakuna if ((requestTarget & RequestTarget.Towns) != 0) {//res + town hall //BUSAction.AutoRequestEmpireOverview(); } if ((requestTarget & RequestTarget.Building) != 0) { //BUSAction.AutoRequestBuildings(); } if ((requestTarget & RequestTarget.Research) != 0) { } if ((requestTarget & RequestTarget.Troops) != 0) { BUSAction.AutoRequestTroops(); } if ((requestTarget & RequestTarget.Diplomacy) != 0) { } //----------------------------------------- //debug DBnRequestServer++; DEBUG("request server: " + DBnRequestServer.ToString() + " " + requestTarget.ToString()); //----------------------------------------- } catch (Exception ex) {} }
public void ExecuteEvent(AbilityEvent abilityEvent, BattleUnit source, RequestTarget requestTarget) { BattleLog.Log("【AbilityData】ExecuteEvent:{0},source:{1},target:{2}", abilityEvent.ToString(), source.GetName(), requestTarget.ToString()); string eventName = Enum.GetName(typeof(AbilityEvent), abilityEvent); D2Event @event; eventMap.TryGetValue(eventName, out @event); if (@event != null) { @event.Execute(source, this, requestTarget); } }
public virtual void Execute(BattleUnit source, AbilityData abilityData, RequestTarget requestTarget) { this.abilityData = abilityData; this.requestTarget = requestTarget; var targetCollection = TargetSearcher.instance.GetActionTargets(source, abilityData, requestTarget, actionTarget); BattleLog.Log("【D2Action】{0}, source:{1},target:{2}", GetType().Name, source.GetName(), requestTarget.ToString()); // 根据类型区分,单位和范围 if (requestTarget.targetType == AbilityRequestTargetType.UNIT) { ExecuteByUnit(source, targetCollection.units); } else { ExecuteByPoint(source, targetCollection.points); } }