コード例 #1
0
        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();
        }
コード例 #2
0
ファイル: UniqueEffect.cs プロジェクト: Synedh/project-x
    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
                       ));
        }
    }
コード例 #3
0
 public void SetEntity(EntityBehaviour entityBehaviour)
 {
     this.entityBehaviour                 = entityBehaviour;
     character                            = entityBehaviour.character;
     entityBehaviour.timelineEntity       = this;
     GetComponentInChildren <Text>().text = character.nickname;
 }
コード例 #4
0
 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--;
             }
         }
     }
 }
コード例 #5
0
 public static void UseEventListener <EntityT>(this EntityBehaviour entityBehavior) where EntityT : GameEntity
 {
     if (entityBehavior.Entity.GetComponent <EventBus>())
     {
         (entityBehavior as IEventBehaviour)?.Bind(entityBehavior.Entity.GetComponent <EventBus>());
     }
 }
コード例 #6
0
        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);
                    }
                }
            }
        }
コード例 #7
0
        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());
                }
            }
        }
コード例 #8
0
    // 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;
        }
    }
コード例 #9
0
        private EntityBehaviour AddHealthBar(EntityBehaviour prefab)
        {
            EntityBehaviour behaviour = Instantiate <EntityBehaviour>(prefab);

            behaviour.transform.SetParent(base.transform, false);
            this.yOffset = 1.2f;
            return(behaviour);
        }
コード例 #10
0
 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();
     }
 }
コード例 #11
0
        private void SendSelectedEvent(int elementIndex)
        {
            EntityBehaviour component = this.GetChild(elementIndex).GetComponent <EntityBehaviour>();

            if ((component != null) && (component.Entity != null))
            {
                EngineService.Engine.ScheduleEvent <ListItemSelectedEvent>(component.Entity);
            }
        }
コード例 #12
0
    public void SetEntity(EntityBehaviour entityBehaviour)
    {
        this.entityBehaviour = entityBehaviour;

        nickname.text = entityBehaviour.character.nickname.ToUpper();
        UpdateStats();
        SetItems();
        SetSpells();
    }
コード例 #13
0
ファイル: UniqueEffect.cs プロジェクト: Synedh/project-x
    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("");
    }
コード例 #14
0
        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);
        }
コード例 #15
0
        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);
        }
コード例 #16
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
 public void Approach(GameObject target, EntityBehaviour.movementModes moveMode)
 {
     if (Vector3.Distance(target.transform.position, transform.position) > touchDist)
     {
         lockInput();
         ValidateApproach();
         approachCoroutine = StartCoroutine(ApproachCoroutine(target, moveMode));
     }
 }
コード例 #17
0
        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();
        }
コード例 #18
0
        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);
            });
        }
コード例 #19
0
        public override void OnEnable()
        {
            base.OnEnable();

            entityBehaviour = target as EntityBehaviour;
            entityObject    = new SerializedObject(entityBehaviour.gameObject);
            if (entityObject != null)
            {
                componentProperty = entityObject.FindProperty(M_Component);
            }
        }
コード例 #20
0
ファイル: UniqueEffect.cs プロジェクト: Synedh/project-x
    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);
    }
コード例 #21
0
 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;
 }
コード例 #22
0
 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);
         }
     }
 }
コード例 #23
0
ファイル: Entity.cs プロジェクト: ktos/inkyvirus
        /// <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";
        }
コード例 #24
0
        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
                }
            }
        }
コード例 #25
0
        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);
        }
コード例 #26
0
    void OnMouseExit()
    {
        EntityBehaviour entityBehaviour = IsThereAnEntity();

        if (entityBehaviour && GameManager.instance.selectedSpell == null)
        {
            entityBehaviour.MouseExit();
        }
        if (coloredCells.Count > 0)
        {
            grid.CleanCells(coloredCells);
            coloredCells.Clear();
        }
    }
コード例 #27
0
        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));
        }
コード例 #28
0
        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();
        }
コード例 #29
0
ファイル: SpellBarBehaviour.cs プロジェクト: Synedh/project-x
    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;
            }
        }
    }
コード例 #30
0
        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);
        }
コード例 #31
0
        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);
                }
            }
        }
コード例 #32
0
        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());
            }
        }
コード例 #33
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
    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;
    }
コード例 #34
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
 public void HoldTempMode(EntityBehaviour.movementModes tempMode, float duration)
 {
     StartCoroutine(HoldModeCoroutine(tempMode, duration));
 }
コード例 #35
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
    /* 	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;
    }
コード例 #36
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
    /* 	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;
    }
コード例 #37
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
 public void SetBehaviour(EntityBehaviour beh)
 {
     behaviour = beh;
     mode = behaviour.movementMode;
 }
コード例 #38
0
ファイル: MovementCC.cs プロジェクト: apleshak/Copy-for-Sasha
    /* 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;
    }