Esempio n. 1
0
 public override void Initialize(NPCEntity npc)
 {
     base.Initialize(npc);
     currentWaypointID = Random.Range(0, npc.HostPlanet.Waypoints.Count);
     npc.MoveTo(npc.HostPlanet.Waypoints[currentWaypointID]);
     Debug.Log("Wondering...");
 }
Esempio n. 2
0
    //public bool moreDialogue = true;
    //Image playerNav;

    void Awake()
    {
        NPCEntity   = gameObject.GetComponent <NPCEntity>();
        playerStats = GameObject.Find("PlayerController").GetComponent <PlayerStats>();
        playerTurn  = GameObject.Find("PlayerNav").GetComponent <PlayerTurn>();
        //playerNav = GameObject.Find("PlayerNav").GetComponent<Image>();
    }
Esempio n. 3
0
        public MapEntity CreateEntity(IRegionEntityFactory factory, IResourceContainer resources, bool scrollAffected)
        {
            MapEntity result = null;

            switch (EntityType)
            {
            case EntityType.None:
                result = new MapEntity(factory, scrollAffected);
                break;

            case EntityType.Building:
                result = new BuildingEntity(factory, scrollAffected);
                break;

            case EntityType.Player:
                result = new PlayerEntity(factory, scrollAffected);
                break;

            case EntityType.Npc:
                result = new NPCEntity(factory, scrollAffected);
                break;

            case EntityType.Door:
                //result = new EntityDoor();
                break;
            }

            if (result != null)
            {
                result.TemplateID = this.ID;
            }
            return(result);
        }
Esempio n. 4
0
 public override void Initialize(NPCEntity npc)
 {
     base.Initialize(npc);
     npc.MoveTo(npc.HostPlanet.PlanetBack);
     npc.OnReachedDestination?.Invoke();
     ChangeLayer();
 }
 private void Awake()
 {
     PlayerStats = GameObject.Find("PlayerController").GetComponent <PlayerStats>();
     NPCEntity   = GameObject.Find("NPC").GetComponent <NPCEntity>();
     button      = gameObject.GetComponent <Button>();
     playerTurn  = GameObject.Find("PlayerNav").GetComponent <PlayerTurn>();
 }
Esempio n. 6
0
 public void Init(WorldMapNpcData npcDate)
 {
     worldMapData = npcDate;
     entity       = NPCDBModel.Instance.Get(npcDate.NPCId);
     InitNPCHeadBar();
     m_TalkArr = entity.Talk.Split('|');
 }
Esempio n. 7
0
 private void SetCallbacks(NPCEntity entity)
 {
     if (entity.DestinationPlanet == this)
     {
         entity.OnGotAboard.AddListener(() => targetIndicator.enabled          = true);
         entity.OnReachedDestination.AddListener(() => targetIndicator.enabled = false);
     }
 }
Esempio n. 8
0
    public NpcEntityCanvas AddNpcCanvas(NPCEntity Target)
    {
        var npcCanvasObj  = Instantiate(npcEntityCanvasPrefab, npcCanvasHolder.transform, false);
        var npcCanvasCtrl = npcCanvasObj.GetComponent <NpcEntityCanvas>();

        npcCanvasCtrl.Initialize(Target);
        return(npcCanvasCtrl);
    }
Esempio n. 9
0
    public void Init(NPCWorldMapData npcData, GameObject @object)
    {
        m_CurrNPCEntity = NPCDBModel.GetInstance.GetEntityById(npcData.NPCId);

        InitHeadBar();

        //提取npc需要说的话
        m_npcTalkContent = m_CurrNPCEntity.Talk.Split('|');
    }
Esempio n. 10
0
 public void AddPassenger(NPCEntity entity)
 {
     Audio2.PlayOneShot(Sounds.GetOnBoard);
     entity.OnReachedDestination.AddListener(() =>
                                             AddScore(Reward.RewardType.DeliveryReward, entity.DeliveryRewardData));
     Passengers.Add(entity);
     Vibration.Vibrate(15);
     playerEffects.ShowTravellerEnterFX(shipThruster.transform.position, transform.rotation);
 }
    public void AddEntry(NPCEntity npc)
    {
        var entry     = Instantiate(travellerUIEntryPrefab, this.transform);
        var entryCtrl = entry.GetComponent <TravellerUIEntry>();

        entryCtrl.Initialize(npc);
        var entryRT = entry.GetComponent <RectTransform>();

        this.SetPosition(ref entryRT);
        travellerEntries.Add(entryCtrl);
    }
Esempio n. 12
0
 private void Awake()
 {
     PlayerStats = GameObject.Find("PlayerController").GetComponent <PlayerStats>();
     NPCEntity   = GameObject.Find("NPC").GetComponent <NPCEntity>();
     button      = gameObject.GetComponent <Button>();
     playerTurn  = GameObject.Find("PlayerNav").GetComponent <PlayerTurn>();
     attack      = GameObject.Find("Attack sub").GetComponent <PanelScript>();
     skills      = GameObject.Find("Skill sub").GetComponent <PanelScript>();
     items       = GameObject.Find("Item sub").GetComponent <PanelScript>();
     options     = GameObject.Find("Options").GetComponent <PanelScript>();
 }
    /// <summary>
    /// 初始化NPC
    /// </summary>
    /// <returns></returns>
    private IEnumerator InitNPC()
    {
        yield return(null);

        List <WorldMapNpcData> npcList = WorldMapDBModel.Instance.Get(SceneMgr.Instance.CurWorldMapSceneId).NPCDataList;

        if (npcList != null && npcList.Count > 0)
        {
            for (int i = 0; i < npcList.Count; i++)
            {
                NPCEntity  entity = NPCDBModel.Instance.Get(npcList[i].NPCId);
                GameObject go     = RoleMgr.Instance.LoadNpc(entity.PrefabName);
                go.transform.position    = npcList[i].NpcBornPoint;
                go.transform.eulerAngles = new Vector3(0, npcList[i].NpCBornRotateY, 0);

                NPCCtrl npc = go.GetComponent <NPCCtrl>();
                npc.Init(npcList[i]);
            }
        }
    }
Esempio n. 14
0
        public LinkAPI(IList <IntPtr> funcPtrs)
        {
            var count = 0;

            foreach (var f in typeof(Funcs).GetFields())
            {
                f.SetValue(null, Marshal.GetDelegateForFunctionPointer(funcPtrs[count], f.FieldType));
                count++;
            }

            for (var i = 0; i < 64; i++)
            {
                PcMobEntities[i] = new PCMobEntity(i, EntityType.PCMob);
            }
            for (var i = 0; i < 22; i++)
            {
                ObjectEntities[i] = new ObjectEntity(i, EntityType.Object);
            }

            for (var i = 0; i < 40; i++)
            {
                NpcEntities[i] = new NPCEntity(i, EntityType.NPC);
            }
        }
    private IEnumerator InitNPC()
    {
        yield return(null);

        if (worldMapEntity == null)
        {
            yield break;
        }

        for (int i = 0; i < worldMapEntity.NPCWorldMapList.Count; i++)
        {
            NPCWorldMapData data = worldMapEntity.NPCWorldMapList[i];

            NPCEntity nPCEntity = NPCDBModel.GetInstance.GetEntityById(data.NPCId);

            GameObject @object = RoleMgr.Instance.LoadNPC(nPCEntity.PrefabName);

            @object.transform.position = data.NPCPostion;

            @object.transform.eulerAngles = new Vector3(0, data.EulerAngleY, 0);

            @object.GetComponent <NPCCtr>().Init(data, @object);
        }
    }
Esempio n. 16
0
 public void Initialize(NPCEntity target)
 {
     this.target    = target;
     this.name.text = target.name;
 }
Esempio n. 17
0
        public void Update(GameTime time)
        {
            if (KeyboardInputEnabled && Queue.Count == 0)
            {
                KeyboardState state     = InputHandler.Instance.State;
                KeyboardState lastState = InputHandler.Instance.LastState;

                if (state.IsKeyDown(Keys.N) && !npcSpawn && Entity.Position.X % 1 == 0 && Entity.Position.Y % 1 == 0)
                {
                    List <EntityTemplate> list = Entity.World.EntityContainer.GetNpcs();
                    NPCEntity             npc  = list[0].CreateEntity(Entity.World.EntityFactory, true) as NPCEntity;
                    npc.Facing                     = Entity.Facing;
                    npc.Map                        = Entity.Map;
                    npc.Position                   = Entity.Position;
                    npc.MovementBehavior           = new MovementBehavior(npc);
                    npc.MovementBehavior.Pattern   = MovementPattern.LogicalRandom;
                    npc.MovementBehavior.Frequency = MovementFrequency.Normally;
                    npc.MovementBehavior.Speed     = MovementSpeed.Walking;
                    Entity.Map.Entities.Add(npc);
                    npcSpawn = true;
                }

                if (!state.IsKeyDown(Keys.N))
                {
                    npcSpawn = false;
                }

                if (state.IsKeyDown(Keys.Enter) && Entity is PlayerEntity)
                {
                    UI ui = Entity.World.UIContainer.Get("StartMenu").CreateUI(Entity.World.ViewData.SpriteBatch, Entity as PlayerEntity);
                    Entity.World.GameScene.UIManager.Add(ui);
                }

                MovementSpeed speed = MovementSpeed.Walking;
                if (state.IsKeyDown(Options.B))
                {
                    speed = MovementSpeed.Running;
                }

                if (state.IsKeyDown(Keys.Left))
                {
                    elapsed[0] += (float)time.ElapsedGameTime.TotalSeconds;
                }
                else
                {
                    elapsed[0] = 0;
                }
                if (state.IsKeyDown(Keys.Right))
                {
                    elapsed[1] += (float)time.ElapsedGameTime.TotalSeconds;
                }
                else
                {
                    elapsed[1] = 0;
                }
                if (state.IsKeyDown(Keys.Up))
                {
                    elapsed[2] += (float)time.ElapsedGameTime.TotalSeconds;
                }
                else
                {
                    elapsed[2] = 0;
                }
                if (state.IsKeyDown(Keys.Down))
                {
                    elapsed[3] += (float)time.ElapsedGameTime.TotalSeconds;
                }
                else
                {
                    elapsed[3] = 0;
                }

                const float turnTime = 0.1f;

                if (Entity.Movable)
                {
                    if (!state.IsKeyDown(Keys.Left) && lastState.IsKeyDown(Keys.Left) && elapsed[0] < turnTime && Entity.Facing != Facing.Left)
                    {
                        Entity.TurnAround(Facing.Left, true);
                    }
                    else if (!state.IsKeyDown(Keys.Right) && lastState.IsKeyDown(Keys.Right) && elapsed[1] < turnTime && Entity.Facing != Facing.Right)
                    {
                        Entity.TurnAround(Facing.Right, true);
                    }
                    else if (!state.IsKeyDown(Keys.Up) && lastState.IsKeyDown(Keys.Up) && elapsed[2] < turnTime && Entity.Facing != Facing.Up)
                    {
                        Entity.TurnAround(Facing.Up, true);
                    }
                    else if (!state.IsKeyDown(Keys.Down) && lastState.IsKeyDown(Keys.Down) && elapsed[3] < turnTime && Entity.Facing != Facing.Down)
                    {
                        Entity.TurnAround(Facing.Down, true);
                    }
                }

                if (state.IsKeyDown(Keys.Left) && (Entity.Facing == Facing.Left || (elapsed[0] >= turnTime)))
                {
                    this.CacheMovement(Facing.Left, speed);
                }
                else if (state.IsKeyDown(Keys.Right) && (Entity.Facing == Facing.Right || (elapsed[1] > turnTime)))
                {
                    this.CacheMovement(Facing.Right, speed);
                }
                else if (state.IsKeyDown(Keys.Up) && (Entity.Facing == Facing.Up || (elapsed[2] > turnTime)))
                {
                    this.CacheMovement(Facing.Up, speed);
                }
                else if (state.IsKeyDown(Keys.Down) && (Entity.Facing == Facing.Down || (elapsed[3] > turnTime)))
                {
                    this.CacheMovement(Facing.Down, speed);
                }
            }

            if (this.Queue.Count > 0 && this.Entity.Movable)
            {
                Movement movement = this.Queue.Dequeue();

                this.Entity.TryMove(movement.Facing, movement.Speed);
            }
            //GameConsole.WriteLine("Elapsed: " + elapsed);
        }
Esempio n. 18
0
 public MovementBehavior(NPCEntity entity) : this()
 {
     this.Entity = entity;
 }
Esempio n. 19
0
        public AllEntities()
        {
            for (var i = 0; i < 95; i++)
            {
                PcMobEntities[i] = new PCMobEntity(i, EntityType.PCMob);
            }
            for (var i = 0; i < 22; i++)
            {
                ObjectEntities[i] = new ObjectEntity(i, EntityType.Object);
            }

            for (var i = 0; i < 40; i++)
            {
                NpcEntities[i] = new NPCEntity(i, EntityType.NPC);
            }
        }
Esempio n. 20
0
 public void Initialize(NPCEntity entity)
 {
     Npc = entity;
     astronautName.text   = Npc.name;
     destinationName.text = Npc.DestinationPlanet.name;
 }
    public void RemoveEntryOfNpc(NPCEntity entity)
    {
        var entryToRemove = travellerEntries.Find(x => x.Npc == entity);

        this.RemoveEntry(entryToRemove);
    }
Esempio n. 22
0
 public void RemovePassenger(NPCEntity entity)
 {
     Passengers.Remove(entity);
 }
Esempio n. 23
0
 private void HandleRoute(NPCEntity entity)
 {
     Destination = entity.HostPlanet.transform;
     entity.OnGotAboard.AddListener(() => Destination = entity.DestinationPlanet.transform);
 }
Esempio n. 24
0
 public virtual void Initialize(NPCEntity npc)
 {
     this.npc = npc;
 }
Esempio n. 25
0
 private void ReleasePassengerToPlanet(NPCEntity entity, PlanetController planet)
 {
     RemovePassenger(entity);
     Audio2.PlayOneShot(Sounds.DestinationReached);
     entity.ExitShip(planet);
 }
Esempio n. 26
0
 public override void Initialize(NPCEntity npc)
 {
     base.Initialize(npc);
     npc.MoveTo(PlayerController.Instance.transform);
     npc.View.SpeechBubble.ShowInfo(npc.DestinationPlanet.transform.name);
 }