public override bool Test(ConditionData data) { EndPoint endPoint = owner.endPoint; Vector3 pointDir = endPoint.transform.forward; HashSet<Vector3> takenVoxelsMap = data.takenVoxels; Quaternion rotation = Quaternion.AngleAxis((float)data.endPointDirection, Vector3.up); float edgeLength = owner.Volume.generatorSize.z; for (float i = 0; i < edgeLength; i++) { Vector3 edgeOffset = rotation * new Vector3(0f, 0f, i); Vector3 wallVoxelPosition = data.randomFloorVoxelPos + edgeOffset; if (takenVoxelsMap.Contains(wallVoxelPosition.RoundVec3ToInt())) { return false; } } return true; }
public bool checkCondition(int id) { ConditionData data = condition[id]; int flagNum = 0; foreach (var f in data.needFlag) { if (currentFlag[f]) { flagNum++; } } if (flagNum < data.needFlagVal) { return(false); } if (data.needValueName > 0) { if (values[(GameValueType)data.needValueName] < data.needValueMinVal) { return(false); } } return(true); }
public void SetParameters(ConditionData condition) { BlurEnabled = condition.BlurInPeripheral; InnerRadius = m_WindowSizeConfig.RadiusList[(int)condition.WindowSize].Inner; OuterRadius = m_WindowSizeConfig.RadiusList[(int)condition.WindowSize].Outer; // TODO: condition.WindowPosition (should be connected to pupil labs) }
static void PrintConditionData(ConditionData data) { Console.Write("Then {0}:{1} ", data.Then.Start.Index, data.Then.End.Index); if (data.Else != null) { Console.Write("Else {0}:{1}", data.Else.Start.Index, data.Else.End.Index); } Console.WriteLine(); }
private static bool PropertyCompare(string[] conditionTable, ConditionData compareObj) { Type _type = compareObj.GetType(); FieldInfo[] _fieldInfoArr = _type.GetFields(); List <bool> orList = new List <bool>(); List <bool> andList = new List <bool>(); for (int i = 0; i < conditionTable.Length; i++) { if (conditionTable[i] == CHAR_TAG_IGNORE) { continue; } object _compareParam = _fieldInfoArr[i].GetValue(compareObj); SubCompareResult _compare = SpecificCompare(conditionTable[i], _compareParam, _fieldInfoArr[i]); switch (_compare.logicTag) { case LogicalOperator.And: andList.Add(_compare.result); break; case LogicalOperator.Or: orList.Add(_compare.result); break; } } if ((orList == null || orList.Count <= 0) && (andList == null || andList.Count <= 0)) { return(false); } for (int i = 0; i < andList.Count; i++) { if (!andList[i]) { return(false); } } bool _or = false; for (int i = 0; i < orList.Count; i++) { if (orList[i]) { _or = true; } } return(_or); }
public Condition(ConditionData conditionData) { type = conditionData.type; handicaps = conditionData.handicaps; duration = conditionData.duration; endDate = Time.time + duration; retrigger = conditionData.retrigger; cancels = conditionData.cancels; needsReset = conditionData.needsReset; }
public ConditionData.UnitCondition GetCondition() { ConditionData c = GetTopCondition(); if (c == null) { return(ConditionData.UnitCondition.none); } return(c.condition); }
public void RemoveCondition(ConditionData conditionData) { Condition condition = new Condition(conditionData); Condition toRemove = conditions.Find(c => c.type == condition.type); if (toRemove != null) { conditions.Remove(toRemove); } }
public bool IsFulfilled(object value, ConditionData data) { if (value is Minion minion) { return(minion.HealthAmount >= data.HealthAmount); } Debug.LogWarning("Value sent to condition is not minion!"); return(false); }
private void Show(ConditionData c) { if (c.category != GameDataManager.RESOURCE_ID || c.enemy != enemy || c.id != id) { return; } deficiency.SetActive(true); deficiency.GetComponent <Animator>().SetTrigger("fadein"); }
private void parseData() { string[] itemRowsList = ResourceManager.LoadText("main.text"); text.Clear(); //Skip first three lines. for (int i = 3; i < itemRowsList.Length; ++i) { string[] itemColumnsList = itemRowsList[i].Split('\t'); if (itemColumnsList.Length < 3) { Debug.LogWarning("The source data seems to have an inconsistent number of columns: " + itemColumnsList.Length); continue; } StoryData data = new StoryData(itemColumnsList); text.Add(data.id, data); } itemRowsList = ResourceManager.LoadText("main.selection"); selection.Clear(); //Skip first three lines. for (int i = 3; i < itemRowsList.Length; ++i) { string[] itemColumnsList = itemRowsList[i].Split('\t'); if (itemColumnsList.Length < 3) { Debug.LogWarning("The source data seems to have an inconsistent number of columns: " + itemColumnsList.Length); continue; } SelectionData data = new SelectionData(itemColumnsList); selection.Add(data.id, data); } itemRowsList = ResourceManager.LoadText("main.condition"); condition.Clear(); //Skip first three lines. for (int i = 3; i < itemRowsList.Length; ++i) { string[] itemColumnsList = itemRowsList[i].Split('\t'); if (itemColumnsList.Length < 3) { Debug.LogWarning("The source data seems to have an inconsistent number of columns: " + itemColumnsList.Length); continue; } ConditionData data = new ConditionData(itemColumnsList); condition.Add(data.id, data); } }
public void CheckTrait(Card _card, ConditionData _data) { if (_card.HasTraits(TRAITS.BLOCKER) == true) { _data.Response = true; } else { _data.Response = false; } // return true; }
public void CheckPower(Card _card, ConditionData _data) { if (_card.GetPower() <= _data.Number) { _data.Response = true; } else { _data.Response = false; } // return true; }
public void OnChangeDirection(SwipeDirection direction) { leftAvailable = true; rightAvailable = true; if (Swipe.state != SwipeState.DRAG || !gameObject.activeSelf) { return; } //if (this.me == false) // return; List <ConditionData> _conditions = null; if (me == true) { _conditions = direction == SwipeDirection.RIGHT ? this.data.right.conditions : this.data.left.conditions; } else { _conditions = direction == SwipeDirection.RIGHT ? this.data.eRight.conditions : this.data.eLeft.conditions; } int time = GameTime.GetTime(); List <ConditionData> conditions = Services.data.GetUnavailableConditions(_conditions, time, false, me); if (conditions.Count == 0) { return; } //sort conditions ConditionData one = conditions.Find(c => c.enemy == false); if (one == null) { return; } if (direction == SwipeDirection.RIGHT) { rightAvailable = false; } else { leftAvailable = false; } OnUnavailableCondition?.Invoke(one); }
private void Update() { ConditionData conditionData = new ConditionData { HealthAmount = 10 }; if (ConditionCheckerFactory.ConditionCheckerByType(ConditionType.MinionHasEnoughHealth).IsFulfilled(target, conditionData)) { ActAggressive(); } else { ActPeacefully(); } }
public List <Card> GetConditionalList(ConditionData _data) { List <Card> list = new List <Card>(); for (int i = 0; i < mCardList.Count; ++i) { _data.GetConditionCallback().Invoke(mCardList[i], _data); if (_data.Response == true) { list.Add(mCardList[i]); } } return(list); }
public void AddCondition(ConditionData conditionData) { Condition condition = new Condition(conditionData); Condition similar = conditions.Find(c => c.type == condition.type); if (similar != null) { if (condition.retrigger == Retrigger.IGNORE) { return; } if (condition.retrigger == Retrigger.OVERWRITE) { conditions.Remove(similar); conditions.Add(condition); return; } } foreach (Type type in condition.cancels) { Condition canceled = conditions.Find(c => c.type == type); conditions.Remove(canceled); int index = (int)canceled.type; if (visualizers[index] != null) { visualizers[index].SetActive(false); } Debug.Log(canceled.type + " ends"); } conditions.Add(condition); int vindex = (int)condition.type; if (vindex < visualizers.Length && visualizers[vindex] != null) { visualizers[vindex].SetActive(true); } if (condition.needsReset) { inputRouter.NeedsReset = true; } foreach (Handicap h in condition.handicaps) { Handicaps[(int)h] = true; } // animationManager.CommandMovement = "handicap"; }
private static List <NotificationCompareResult> CongruentFilter(int[] indexArray, List <ConditionData> conditions) { List <NotificationCompareResult> _result = new List <NotificationCompareResult>(); for (int i = 0; i < indexArray.Length; i++) { bool _isMatch = true; for (int j = 0; j < conditions.Count; j++) { ConditionData _conditionUnit = conditions[j]; int _fieldCount = conditionClassColumns[_conditionUnit.GetType()].Count; string[] _paramField = new string[_fieldCount]; for (int k = 0; k < _fieldCount; k++) { int _columnIndex = conditionClassColumns[_conditionUnit.GetType()][k]; _paramField[k] = notificationUnitStorage[indexArray[i]][_columnIndex]; } _isMatch = PropertyCompare(_paramField, _conditionUnit); if (!_isMatch) { break; } } if (_isMatch) { NotificationCompareResult _compareResult = new NotificationCompareResult(); FieldInfo[] _fieldInfos = typeof(NotificationCompareResult).GetFields(); for (int j = 0; j < resultClassColumns.Count; j++) { int _columnIndex = resultClassColumns[j]; string _param = notificationUnitStorage[indexArray[i]][_columnIndex]; _fieldInfos[j].SetValue(_compareResult, ConvertData(_param, _fieldInfos[j].FieldType)); } _result.Add(_compareResult); } } return(_result); }
public void RemoveCrowdControl(ConditionData.UnitCondition _type) { ConditionData removeItem = null; foreach (ConditionData c in unitConditionList) // 아니라면 foreach를 돌림 { if (c.condition == _type) // 만약 군중제어상태가 같은 것이 있다면 { removeItem = c; break; } } if (removeItem != null) { unitConditionList.Remove(removeItem); animator.SetInteger("condition", (int)GetCondition()); } }
void UpdateCondition(float deltaTime) { // 군중제어기시간 체크용 업데이트문 ConditionData.UnitCondition bigCondition = ConditionData.UnitCondition.none; List <ConditionData> removes = new List <ConditionData>(); if (unitConditionList.Count > 0) { foreach (ConditionData c in unitConditionList) { if (c.conditionTIme <= deltaTime) { removes.Add(c); if (c.onConditionChangeEvent != null) { c.onConditionChangeEvent(); } } else { c.conditionTIme -= deltaTime; if (bigCondition < c.condition) { bigCondition = c.condition; } } } if (removes.Count > 0) { foreach (ConditionData c in removes) { unitConditionList.Remove(c); } ConditionData topCondition = GetTopCondition(); if (topCondition != null) { animator.SetInteger("condition", (int)topCondition.condition); } else { animator.SetInteger("condition", 0); } } } }
public List <Card> GetConditionalList(ConditionData _data) { if (_data.Targets != TARGETS.ALL) { Debug.LogWarning("NEIMPLEMENTAT!"); return(null); } if (_data.Targets == TARGETS.ALL) { List <Card> returnList; List <Card> list_1 = new List <Card>(); List <Card> list_2 = new List <Card>(); list_1 = mBattlezone_One.GetConditionalList(_data); list_2 = mBattlezone_Two.GetConditionalList(_data); list_1.AddRange(list_2); return(list_1); } return(null); }
public ConditionData GetTopCondition() { /* * 가장 우선순위가 높은 군중제어상태를 찾아줌 */ if (unitConditionList.Count == 0) { return(null); } ConditionData bigCondition = null; foreach (ConditionData c in unitConditionList) { if (bigCondition == null || c.condition > bigCondition.condition) { bigCondition = c; } } return(bigCondition); }
void Awake() { if (instance != null) { Destroy(gameObject); } instance = this; m_ConditionName = CurrentExpSetting.condition; m_Condition = m_ConditionList[(int)m_ConditionName]; if (!usingGazeInfo) { gazeManager.SetActive(false); visualEffectManager.Init(); } else { gazeManager.SetActive(true); } }
public override bool Test(ConditionData data) { EndPoint endPoint = owner.endPoint; Vector3 rightEndPointDir = endPoint.transform.right.RoundVec3ToInt(); bool overlap = AllPointsNextToWall(data, rightEndPointDir); if (overlap) { return(overlap); } Vector3 leftEndPointDir = (endPoint.transform.right * -1f).RoundVec3ToInt(); overlap |= AllPointsNextToWall(data, leftEndPointDir); if (overlap) { return(overlap); } return(overlap); }
static partial void WriteBinaryParameterParsingCustom(MutagenWriter writer, IFunctionConditionDataGetter item) { var paramTypes = ConditionData.GetParameterTypes(item.Function); switch (paramTypes.First.GetCategory()) { case ConditionData.ParameterCategory.None: case ConditionData.ParameterCategory.Number: writer.Write(item.ParameterOneNumber); break; case ConditionData.ParameterCategory.Form: FormKeyBinaryTranslation.Instance.Write(writer, item.ParameterOneRecord.FormKey); break; case ConditionData.ParameterCategory.String: default: throw new NotImplementedException(); } switch (paramTypes.Second.GetCategory()) { case ConditionData.ParameterCategory.None: case ConditionData.ParameterCategory.Number: writer.Write(item.ParameterTwoNumber); break; case ConditionData.ParameterCategory.Form: FormKeyBinaryTranslation.Instance.Write(writer, item.ParameterTwoRecord.FormKey); break; case ConditionData.ParameterCategory.String: default: throw new NotImplementedException(); } writer.Write(item.Unknown3); writer.Write(item.Unknown4); writer.Write(item.Unknown5); }
public void AddCrowdControl(ConditionData.UnitCondition _type, float _ccTime = 1.0f, ConditionData.OnConditionChangeEvent _conditionEvent = null) // 군중제어상태를 추가 { ConditionData condition = new ConditionData(); // 컨디션데이터를만들고 condition.condition = _type; // 채워줌 condition.conditionTIme = _ccTime; condition.onConditionChangeEvent = _conditionEvent; foreach (ConditionData c in unitConditionList) // 아니라면 foreach를 돌림 { if (c.condition == _type) // 만약 군중제어상태가 같은 것이 있다면 { if (c.conditionTIme < _ccTime) // 시간을 체크후 { c.conditionTIme = _ccTime; // 더 큰시간으로 설정해줌 return; } } } unitConditionList.Add(condition); // 없다면 새로추가 ConditionData topCondition = GetTopCondition(); animator.SetInteger("condition", (int)topCondition.condition); }
private void CreateCondition(ConditionData condition) { // create condition variable Add(new Variable("Skill.Framework.AI.Condition", condition.Name, "null")); // new condition variable inside CreateTree method _CreateTreeMethodBody.AppendLine(string.Format("this.{0} = new Skill.Framework.AI.Condition(\"{1}\",{2});", Variable.GetName(condition.Name), condition.Name, GetConditionHandlerName(condition.Name))); // set weight SetBehaviorParameters(condition); // create condition handler method Method m = new Method("bool", GetConditionHandlerName(condition.Name), string.Empty, ConditionHandlerParams) { IsPartial = _Tree.ExpandMethods }; if (_Tree.ExpandMethods) { m.Body = CreateMethodBody(condition, "return false;"); } else { m.Body = string.Format("return OnCondition( Conditions.{0}, sender , parameters);", condition.Name); } Add(m); }
protected bool AllPointsNextToWall(ConditionData data, Vector3 pointDir) { HashSet <Vector3> wallsVoxelMap = data.blueprint.WallsVoxelMap; Quaternion rotation = Quaternion.AngleAxis((float)data.endPointDirection, Vector3.up); float edgeLength = owner.Volume.generatorSize.z; for (float i = 0; i < edgeLength; i++) { Vector3 edgeOffset = rotation * new Vector3(0f, 0f, i); Vector3 rotatedPointDir = rotation * pointDir; Vector3 wallVoxelPosition = data.randomFloorVoxelPos + rotatedPointDir + edgeOffset; wallVoxelPosition = wallVoxelPosition.RoundVec3ToInt(); if (!wallsVoxelMap.Contains(wallVoxelPosition)) { return(false); } } return(true); }
private List <ConditionData> AccessDatabase() { DataLayer dl = new DataLayer(); string strSQL = "select * from CONDITION"; OleDbDataReader dr = dl.GetDataReader(strSQL); List <ConditionData> cList = new List <ConditionData>(); while (dr.Read()) { ConditionData cd = new ConditionData(); if (!String.IsNullOrEmpty(dr["RequestedDate"].ToString())) { cd.RequestedDate = DateTime.Parse(dr["RequestedDate"].ToString()); } cd.RequestedBy = dr["RequestedBy"].ToString(); cd.Description = dr["_Description"].ToString(); cd.ConditionTypeAndNo = dr["_ConditionTypeAndNo"].ToString(); cList.Add(cd); } dl.Cleanup(); return(cList); }
public override bool Test(ConditionData data) { RoomBlueprint blueprint = data.blueprint; HashSet <Vector3> wallsVoxelMap = blueprint.WallsVoxelMap; Vector3 randomFloorVoxelPos = data.randomFloorVoxelPos; Quaternion edgeRotation = EndPoint.GetRoation(data.endPointDirection); float itemLength = owner.Volume.generatorSize.x; Vector3 horizontalEdgeOffset = EndPoint.GetRoation(data.endPointDirection) * new Vector3(itemLength, 0f, 0f); float itemHeight = owner.Volume.generatorSize.z; for (float i = 0; i < itemHeight; i++) { Vector3 verticalEdgeOffset = EndPoint.GetRoation(data.endPointDirection) * new Vector3(0f, 0f, i); Vector3 wallVoxelPosition = randomFloorVoxelPos + horizontalEdgeOffset + verticalEdgeOffset; wallVoxelPosition = wallVoxelPosition.RoundVec3ToInt(); if (wallsVoxelMap.Contains(wallVoxelPosition)) { GameObject wallVoxelGO = data.blueprint.GetWallVoxelGO(wallVoxelPosition); Vector3 directionsDifference = horizontalEdgeOffset + wallVoxelGO.transform.right; if (directionsDifference == Vector3.zero) { return(false); } } } return(true); }
void ProcessConditionBranches (ConditionData data, IfStatement conditional) { MoveStatementsToBlock (data.Then, conditional.Then); if (data.Else != null && !IsElseUnecessary (conditional)) { conditional.Else = new BlockStatement (); MoveStatementsToBlock (data.Else, conditional.Else); if (IsEmptyThenCondition (conditional)) SwapConditionBranches (conditional); } }
/// <summary> /// Initializes a new instance of the <see cref="Condition"/> class. /// </summary> /// <param name="client"><see cref="T:TcmCoreService.Client" /></param> /// <param name="targetGroupConditionData"><see cref="T:Tridion.ContentManager.CoreService.Client.ConditionData" /></param> internal Condition(Client client, ConditionData conditionData) : base(client) { mConditionData = conditionData; }
static void PrintConditionData (ConditionData data) { Console.Write ("Then {0}:{1} ", data.Then.Start.Index, data.Then.End.Index); if (data.Else != null) Console.Write ("Else {0}:{1}", data.Else.Start.Index, data.Else.End.Index); Console.WriteLine (); }