public void AddItem(Entity entity) { EntityBehaviour behaviour = Instantiate <EntityBehaviour>(this.itemContentPrefab); ListItem item = Instantiate <ListItem>(this.itemPrefab); item.SetContent((UnityEngine.RectTransform)behaviour.transform); item.transform.SetParent(this.content, false); item.Data = entity; this.items.Add(item); behaviour.BuildEntity(entity); if (this.Sorter == null) { item.transform.SetAsLastSibling(); } else { this.Sorter.Sort(this.items); int num = 0; foreach (ListItem item2 in this.items) { item2.transform.SetSiblingIndex(num++); } } this.Layout(); }
public string ResolveUniqueEffect(EntityBehaviour sender, EntityBehaviour reciever = null, Vector2 target = new Vector2()) { switch (_type) { case EffectType.Create: return(ResolveCreate(target, _prefab)); case EffectType.Jump: return(ResolveJump(sender, target)); case EffectType.Transpose: return(ResolveTranspose(sender, reciever)); case EffectType.Move: return(ResolveMove(reciever, target, (int)_valueMin).ToString()); case EffectType.Charac: return(ResolveCarac(reciever, _valueMin, _carac)); case EffectType.Heal: return(ResolveHeal(reciever, (int)_valueMin, (int)_valueMax).ToString()); default: return(ResolveDamage( sender, reciever, _type, (int)_valueMin, (int)_valueMax, _carac )); } }
public void SetEntity(EntityBehaviour entityBehaviour) { this.entityBehaviour = entityBehaviour; character = entityBehaviour.character; entityBehaviour.timelineEntity = this; GetComponentInChildren <Text>().text = character.nickname; }
private void SetAsFirstSiblingIfLessShown(NewsItemNode newsItem, Transform containerTransform, GameObject itemObject) { if (containerTransform.childCount <= 1) { newsItem.newsItem.ShowCount++; } else { EntityBehaviour behaviour = containerTransform.GetChild(0).GetComponent <EntityBehaviour>(); if ((behaviour != null) && behaviour.Entity.HasComponent <NewsItemComponent>()) { NewsItemComponent component = behaviour.Entity.GetComponent <NewsItemComponent>(); if (newsItem.newsItem.ShowCount >= component.ShowCount) { newsItem.newsItem.ShowCount = component.ShowCount; } else { base.Log.InfoFormat("Reorder item to first: {0}", newsItem); itemObject.GetComponent <RectTransform>().SetAsFirstSibling(); newsItem.newsItem.ShowCount++; component.ShowCount--; } } } }
public static void UseEventListener <EntityT>(this EntityBehaviour entityBehavior) where EntityT : GameEntity { if (entityBehavior.Entity.GetComponent <EventBus>()) { (entityBehavior as IEventBehaviour)?.Bind(entityBehavior.Entity.GetComponent <EventBus>()); } }
private void AttachChildren(GameObject gameObject, ScreenGroupNode node) { EntityBehaviour component = gameObject.GetComponent <EntityBehaviour>(); foreach (EntityBehaviour behaviour2 in gameObject.GetComponentsInChildren <EntityBehaviour>(true)) { if (!behaviour2.Equals(component)) { if (behaviour2.gameObject.GetComponent <AttachToScreenComponent>() == null) { AttachToScreenComponent component2 = behaviour2.gameObject.AddComponent <AttachToScreenComponent>(); component2.JoinEntityBehaviour = component; Entity entity = behaviour2.Entity; if ((entity != null) && behaviour2.handleAutomaticaly) { ((EntityInternal)entity).AddComponent(component2); } } else if (behaviour2.Entity != null) { if (behaviour2.Entity.HasComponent <ScreenGroupComponent>()) { behaviour2.Entity.RemoveComponent <ScreenGroupComponent>(); } node.screenGroup.Attach(behaviour2.Entity); } } } }
void CheckRequiredComponents(EntityBehaviour entity) { errors.Clear(); if (!fieldInfo.IsDefined(typeof(EntityRequiresAttribute), true)) { return; } var attribute = fieldInfo.GetAttribute <EntityRequiresAttribute>(true); if (entity == null && !attribute.CanBeNull) { errors.Add(string.Format("Field cannot be null.").ToGUIContent()); } if (entity == null) { return; } for (int j = 0; j < attribute.Types.Length; j++) { var type = attribute.Types[j]; if (type != null && typeof(IComponent).IsAssignableFrom(type) && entity.GetComponent(type) == null) { errors.Add(string.Format("Missing required component: {0}", type.Name).ToGUIContent()); } } }
// Update is called once per frame void Update() { currentEntityBehaviour = TurnManager.instance.currentEntityBehaviour; if (currentEntityBehaviour) { GetComponent <MeshRenderer>().enabled = true; GetComponent <MeshRenderer>().material = currentEntityBehaviour.character.team.colorMaterial; if (transform.position.y <= 2 || transform.position.y >= 3) { speedPosition = -speedPosition; } transform.position = new Vector3( currentEntityBehaviour.transform.position.x, transform.position.y + speedPosition, currentEntityBehaviour.transform.position.z ); transform.eulerAngles = new Vector3( transform.eulerAngles.x, transform.eulerAngles.y + Time.deltaTime * rotationSpeed, transform.eulerAngles.z ); } else { GetComponent <MeshRenderer>().enabled = false; } }
private EntityBehaviour AddHealthBar(EntityBehaviour prefab) { EntityBehaviour behaviour = Instantiate <EntityBehaviour>(prefab); behaviour.transform.SetParent(base.transform, false); this.yOffset = 1.2f; return(behaviour); }
void OnMouseEnter() { if (!EventSystem.current.IsPointerOverGameObject()) { EntityBehaviour entity = IsThereAnEntity(); EntityBehaviour currentEntityBehaviour = GameManager.instance.currentEntityBehaviour; if (GameManager.instance.selectedSpell != null) { if (cellsColor[cellsColor.Count - 1] == grid.reachableSpellRange) { List <Vector2> aoeOfSpell = currentEntityBehaviour.GetAoeOfSpell( GameManager.instance.selectedSpell, new Vector2(x, y) ); foreach (Vector2 cell in aoeOfSpell) { CellBehaviour cellBehaviour = grid.GetCellBehaviour( x + (int)cell.x, y + (int)cell.y ); if (cellBehaviour != null && cellBehaviour.isWalkable) { coloredCells.Add( new Vector2(x + (int)cell.x, y + (int)cell.y) ); cellBehaviour.colorCell(grid.aoeSpellRange); } } } } else if (entity) { entity.MouseEnter(); } else { if (!GameManager.instance.currentEntityBehaviour.doMove) { List <Vector2> path = currentEntityBehaviour.SetMoveTargets(cell); if (path.Count <= currentEntityBehaviour.character.stats[Characteristic.CurrentMP]) { foreach (Vector2 cell in path) { coloredCells.Add(new Vector2(cell.x, cell.y)); grid.GetCellBehaviour( (int)cell.x, (int)cell.y ).colorCell(grid.pathMP); } } } } } else { OnMouseExit(); } }
private void SendSelectedEvent(int elementIndex) { EntityBehaviour component = this.GetChild(elementIndex).GetComponent <EntityBehaviour>(); if ((component != null) && (component.Entity != null)) { EngineService.Engine.ScheduleEvent <ListItemSelectedEvent>(component.Entity); } }
public void SetEntity(EntityBehaviour entityBehaviour) { this.entityBehaviour = entityBehaviour; nickname.text = entityBehaviour.character.nickname.ToUpper(); UpdateStats(); SetItems(); SetSpells(); }
string ResolveTranspose(EntityBehaviour sender, EntityBehaviour reciever) { int goToX = reciever.x; int goToY = reciever.y; reciever.SetTo(sender.x, sender.y); sender.SetTo(goToX, goToY); return(""); }
private void SpawnEffect(RectTransform container, Entity entity) { EntityBehaviour behaviour = Instantiate <EntityBehaviour>(this.effectPrefab); behaviour.BuildEntity(entity); behaviour.transform.SetParent(container, false); behaviour.transform.SetAsFirstSibling(); base.SendMessage("RefreshCurve", SendMessageOptions.DontRequireReceiver); }
public EntityBehaviour CreateModule(Slot slot) { base.gameObject.SetActive(true); RectTransform slotRectTransform = this.GetSlotRectTransform(slot); EntityBehaviour behaviour = this.Instantiate <EntityBehaviour>(this.modulePrefab, slotRectTransform); base.SendMessage("RefreshCurve", SendMessageOptions.DontRequireReceiver); return(behaviour); }
public void Approach(GameObject target, EntityBehaviour.movementModes moveMode) { if (Vector3.Distance(target.transform.position, transform.position) > touchDist) { lockInput(); ValidateApproach(); approachCoroutine = StartCoroutine(ApproachCoroutine(target, moveMode)); } }
private void ActivateButton(ScreenNode screen, int packSize, int index, bool priceActivity, bool xPriceActivity) { EntityBehaviour behaviour = screen.buyItemPacksButtons.BuyButtons[index]; behaviour.GetComponent <ItemPackButtonComponent>().Count = packSize; behaviour.GetComponent <UniversalPriceButtonComponent>().PriceActivity = priceActivity; behaviour.GetComponent <UniversalPriceButtonComponent>().XPriceActivity = xPriceActivity; behaviour.gameObject.SetActive(true); base.NewEvent <SetBuyItemPackButtonInfoEvent>().Attach(behaviour.Entity).Schedule(); }
protected override void OnUpdate() { //on Entities .WithAll <ActorLifetime, ActorAttribute3 <_HP>, Translation, Shield>().WithAllReadOnly <ActorCreator, OnCreateMessage>() .ForEach((Entity shieldEntity, ref ActorCreator shipCreator, ref ActorLifetime actorLifetime, ref ActorAttribute3 <_HP> _hp, ref Translation translation, ref Shield shield) => { // var shipT = EntityManager.GetComponentObject <Transform>(shipCreator.entity); var _ShieldLevel = EntityManager.GetComponentData <ActorAttribute1 <_ShieldLevel> >(shipCreator.entity); var shieldLevel = (short)(_ShieldLevel.value - 1); if (shieldLevel < 0) { Debug.LogError($"shieldLevel < 0 shipT={shipT}", shipT); return; } var shieldRootT = shipT.GetChild(ShipSpawner.ShieldRoot_TransformIndex); EntityBehaviour._initComponent(shieldRootT, shieldEntity, EntityManager); EntityManager.AddComponentObject(shieldEntity, shieldRootT); EntityManager.AddComponentObject(shieldEntity, shieldRootT.GetComponent <Rigidbody>()); var shieldT = shieldRootT.GetChild(shieldLevel); shieldT.gameObject.SetActive(true); // var shipShieldInfos = EntityManager.GetComponentData <ShipShields>(shipCreator.entity); var shieldInfo = shipShieldInfos.get(shieldLevel); actorLifetime = new ActorLifetime { lifetime = shieldInfo.lifetime, value = shieldInfo.lifetime }; _hp = new ActorAttribute3 <_HP> { max = shieldInfo.hp, regain = 0f, value = shieldInfo.hp }; translation = new Translation { Value = shieldRootT.position }; //rotation = new Rotation { Value = shieldRootT.rotation }; shield = new Shield { curLevel = shieldLevel }; // var shipWeaponInstalledArray = EntityManager.GetComponentData <ShipWeaponArray>(shipCreator.entity); shipWeaponInstalledArray.shieldEntity = shieldEntity; EntityManager.SetComponentData(shipCreator.entity, shipWeaponInstalledArray); }); }
public override void OnEnable() { base.OnEnable(); entityBehaviour = target as EntityBehaviour; entityObject = new SerializedObject(entityBehaviour.gameObject); if (entityObject != null) { componentProperty = entityObject.FindProperty(M_Component); } }
int ResolveHeal(EntityBehaviour reciever, int valueMin, int valueMax) { int heal = GameManager.instance.randomSeed.Next(valueMin, valueMax + 1); if (60 - reciever.character.stats[Characteristic.CurrentHP] < heal) { heal = 60 - (int)reciever.character.stats[Characteristic.CurrentHP]; } reciever.character.stats[Characteristic.CurrentHP] += heal; return(heal); }
public void Apply(EntityBehaviour sender, Vector2 cell) { ChatBehaviour.WriteMessage( sender.character.nickname + " use " + _name, MessageType.Combat ); sender.Rotate(cell); foreach (Effect effect in _effects) { effect.Apply(sender, cell); } sender.character.stats[Characteristic.CurrentAP] -= this.cost; }
public void InitSlots(InitSlotsEvent e, HUDNodes.SelfBattleUserAsTankNode selfUser, [JoinByUser, Combine] SlotNode slot, [JoinByModule] ModuleNode module, [JoinByModule] ICollection <ModuleHUDNode> moduleHuds, [JoinAll] SingleNode <InventoryHUDComponent> inventory) { if (moduleHuds.Count <= 0) { EntityBehaviour behaviour = inventory.component.CreateModule(slot.slotUserItemInfo.Slot); module.moduleGroup.Attach(behaviour.Entity); if (module.Entity.HasComponent <GoldBonusModuleItemComponent>()) { inventory.component.CreateGoldBonusesCounter(behaviour); } } }
/// <summary> /// Initializes a new entity /// </summary> /// <param name="maxWidth"></param> /// <param name="maxHeight"></param> /// <param name="behaviour"></param> public Entity(int maxWidth, int maxHeight, EntityBehaviour behaviour) { CentralPoint = new Point(GameState.R.Next(50, maxWidth - 50), GameState.R.Next(50, maxHeight - 50)); this.maxHeight = maxHeight; this.maxWidth = maxWidth; Behaviour = behaviour; Sprite = new TextBlock(); Sprite.FontSize = 28; Sprite.Text = "x"; }
public void OnMouseOver() { if (Input.GetMouseButtonDown(0)) { EntityBehaviour matchingEntityBehaviour = FindObjectsOfType <EntityBehaviour>() .FirstOrDefault(b => b.entity == Entity); if (matchingEntityBehaviour != null) { #if UNITY_EDITOR Selection.activeGameObject = matchingEntityBehaviour.gameObject; #endif } } }
public void RequestImage(NodeAddedEvent e, VisibleBattleNode battle, [JoinByMap] SingleNode <MapPreviewComponent> map, [JoinAll] ScreenNode screen) { base.Log.InfoFormat("RequestImage {0}", battle); RectTransform item = screen.lazyList.GetItem(battle.searchData.IndexInSearchResult); EntityBehaviour behaviour = Object.Instantiate <EntityBehaviour>(screen.battleSelectScreen.ItemContentPrefab); screen.lazyList.SetItemContent(battle.searchData.IndexInSearchResult, behaviour.GetComponent <RectTransform>()); behaviour.BuildEntity(battle.Entity); screen.lazyList.UpdateSelection(battle.searchData.IndexInSearchResult); AssetRequestEvent eventInstance = new AssetRequestEvent(); eventInstance.Init <MapPreviewDataComponent>(map.component.AssetGuid); base.ScheduleEvent(eventInstance, battle); }
void OnMouseExit() { EntityBehaviour entityBehaviour = IsThereAnEntity(); if (entityBehaviour && GameManager.instance.selectedSpell == null) { entityBehaviour.MouseExit(); } if (coloredCells.Count > 0) { grid.CleanCells(coloredCells); coloredCells.Clear(); } }
public void InitMap(NodeAddedEvent e, SingleNode <MapSceneLoadedMarkerComponent> mapSceneLoadedMarker, [JoinAll, Context] LoadedMapNode map) { GameObject gameObject = mapSceneLoadedMarker.component.transform.parent.gameObject; if (!gameObject) { throw new CannotFindMapRootException(map.resourceData.Name); } EntityBehaviour behaviour = gameObject.AddComponent <EntityBehaviour>(); behaviour.handleAutomaticaly = false; behaviour.BuildEntity(map.Entity); map.Entity.AddComponent(new MapInstanceComponent(gameObject)); }
public void AddIndicator(ScoreTableRowIndicator indicatorPrefab) { ScoreTableRowIndicator indicator = Instantiate <ScoreTableRowIndicator>(indicatorPrefab); this.indicators.Add(indicatorPrefab, indicator); indicator.transform.SetParent(this.indicatorsContainer, false); EntityBehaviour component = indicator.GetComponent <EntityBehaviour>(); if (component != null) { component.BuildEntity(base.GetComponent <EntityBehaviour>().Entity); } this.Sort(); }
void Update() { if (entityBehaviour != GameManager.instance.currentEntityBehaviour) { entityBehaviour = GameManager.instance.currentEntityBehaviour; spells = entityBehaviour.character.spells; foreach (GameObject spellIcon in spellIcons) { Destroy(spellIcon); } spellIcons.Clear(); GameObject weaponIcon = Instantiate(spellIconPrefab, transform) as GameObject; weaponIcon.transform.position = new Vector3( weaponIcon.transform.position.x, weaponIcon.transform.position.y, weaponIcon.transform.position.z ); weaponIcon.GetComponent <SpellIconBehaviour>().SetSpell( entityBehaviour.character.items[ItemType.Weapon].spell ); spellIcons.Add(weaponIcon); if (spells != null) { for (int i = 0; i < spells.Count; ++i) { GameObject spellIcon = Instantiate(spellIconPrefab, transform) as GameObject; spellIcon.transform.position = new Vector3( spellIcon.transform.position.x + 60 * (i + 1), spellIcon.transform.position.y, spellIcon.transform.position.z ); spellIcon.GetComponent <SpellIconBehaviour>().SetSpell(spells[i]); spellIcons.Add(spellIcon); } } } for (int i = 0; i < spellIcons.Count; ++i) // Deactivate non usable spells { if (i == 0 && entityBehaviour.character.stats[Characteristic.CurrentAP] < entityBehaviour.character.items[ItemType.Weapon].spell.cost || i > 0 && entityBehaviour.character.stats[Characteristic.CurrentAP] < spells[i - 1].cost) { spellIcons[i].GetComponent <Button>().interactable = false; } } }
public EntityBehaviour CreateChat(Entity entity, ChatType chatType, SingleNode <ChatDialogComponent> dialog, bool select = true) { EntityBehaviour behaviour = dialog.component.CreateChatChannel(chatType); behaviour.BuildEntity(entity); if (!behaviour.Entity.HasComponent <ChatChannelComponent>()) { behaviour.Entity.AddComponent(new ChatChannelComponent(chatType)); } if (select) { base.ScheduleEvent(new SelectChannelEvent(), entity); } return(behaviour); }
public void AddUser(NodeAddedEvent e, [Combine] InitedScoreTable scoreTable, [Context, JoinByBattle, Combine] RoundUserNode roundUser) { ScoreTableRowComponent component = scoreTable.scoreTable.AddRow(); Entity entity = component.GetComponent <EntityBehaviour>().Entity; entity.AddComponent(new ScoreTableGroupComponent(scoreTable.scoreTableGroup.Key)); entity.AddComponent(new UserGroupComponent(roundUser.userGroup.Key)); foreach (ScoreTableRowIndicator indicator in component.indicators.Values) { EntityBehaviour behaviour = indicator.GetComponent <EntityBehaviour>(); if (behaviour != null) { behaviour.BuildEntity(entity); } } }
void CheckRequiredComponents(EntityBehaviour entity) { errors.Clear(); if (!fieldInfo.IsDefined(typeof(EntityRequiresAttribute), true)) return; var attribute = fieldInfo.GetAttribute<EntityRequiresAttribute>(true); if (entity == null && !attribute.CanBeNull) errors.Add(string.Format("Field cannot be null.").ToGUIContent()); if (entity == null) return; for (int j = 0; j < attribute.Types.Length; j++) { var type = attribute.Types[j]; if (type != null && typeof(IComponent).IsAssignableFrom(type) && entity.GetComponent(type) == null) errors.Add(string.Format("Missing required component: {0}", type.Name).ToGUIContent()); } }
IEnumerator HoldModeCoroutine(EntityBehaviour.movementModes tempMode, float duration) { float elapsed = 0.0f; mode = tempMode; modeLocked = true; while (elapsed <= duration) { elapsed += Time.deltaTime; yield return null; } modeLocked = false; mode = defaultMode; }
public void HoldTempMode(EntityBehaviour.movementModes tempMode, float duration) { StartCoroutine(HoldModeCoroutine(tempMode, duration)); }
/* Move one frame worth of movement. Preserves mode. Doesn't preserve direction. Reports the distance traveled. */ public float Move(Vector3 dir, EntityBehaviour.movementModes moveMode) { // Save the old mode, then set the new mode EntityBehaviour.movementModes oldMode = mode; mode = moveMode; // Perform the movement and rotation float dist = Move (dir.x, dir.z); Rotate(dir.x, dir.z); // Restore old mode mode = oldMode; return dist; }
/* Move one frame worth of movement in the forward direction. Preserves mode. Doesn't preserve direction. Reports the distance traveled. */ public float Move(EntityBehaviour.movementModes moveMode) { EntityBehaviour.movementModes oldMode = mode; mode = moveMode; float dist = Move(transform.forward.x, transform.forward.z); mode = oldMode; return dist; }
public void SetBehaviour(EntityBehaviour beh) { behaviour = beh; mode = behaviour.movementMode; }
/* Approaches a static target with custom movement mode. */ IEnumerator ApproachCoroutine(Vector3 target, EntityBehaviour.movementModes moveMode) { mode = moveMode; Vector3 dir = target - transform.position; Vector3 heightDiff = new Vector3(0.0f, target.y - transform.position.y, 0.0f); dir.y = 0; while (Vector3.Distance(transform.position + heightDiff, target) > touchDist) { Move (dir.x, dir.z); Rotate (dir); yield return null; } approaching = false; unlockInput(); mode = defaultMode; }