Example #1
0
    public int GetNpcCount(NpcActionStatus npcActionStatus)
    {
        NpcMgr npcMgr = GetNpcMgr(npcActionStatus);

        if (npcMgr == null)
        {
            return(0);
        }
        return(npcMgr.Count);
    }
Example #2
0
    public Transform GetNpcParentTransform(NpcActionStatus npcActionStatus)
    {
        NpcMgr npcMgr = GetNpcMgr(npcActionStatus);

        if (npcMgr == null)
        {
            return(null);
        }
        return(npcMgr.NpcParentTransform);
    }
Example #3
0
    public void RemoveNpcAction(NpcActionStatus npcActionStatus, int npcId)
    {
        NpcMgr npcMgr = GetNpcMgr(npcActionStatus);

        if (npcMgr == null)
        {
            return;
        }
        npcMgr.RemoveNpcAction(npcId);
    }
    public Transform GetNpcParentTransform(UInt16 stationIndex, NpcActionStatus npcActionStatus)
    {
        Station station = GetStation(stationIndex);

        if (station == null)
        {
            return(null);
        }
        return(station.GetNpcParentTransform(npcActionStatus));
    }
    public int GetNpcCount(UInt16 stationIndex, NpcActionStatus npcActionStatus)
    {
        Station station = GetStation(stationIndex);

        if (station == null)
        {
            return(0);
        }
        return(station.GetNpcCount(npcActionStatus));
    }
    private static void VVV(Station station, Transform stationTrans, System.UInt16 stationIndex)
    {
        NpcMgr npcMgr = null;
        int    npcActionStatusCount = stationTrans.childCount;

        for (int i = 0; i < npcActionStatusCount; ++i)
        {
            npcMgr = new NpcMgr();
            Transform       npcActionStatusTrans = stationTrans.GetChild(i);
            NpcActionStatus npcActionStatus      = (NpcActionStatus)System.Enum.Parse(typeof(NpcActionStatus), npcActionStatusTrans.gameObject.name);
            npcMgr.NpcActionStatus    = npcActionStatus;
            npcMgr.NpcParentTransform = npcActionStatusTrans;
            station.AddNpcMgr(npcMgr);
            NNN(npcMgr, npcActionStatusTrans, stationIndex);
        }
    }
Example #7
0
 public void EndAction()
 {
     CurrentStatus = NpcActionStatus.Sleep;
 }
Example #8
0
 public void StartAction(NpcActionModel model)
 {
     CurrentStatus = NpcActionStatus.Doing;
     count         = 5;
 }
Example #9
0
 public Transform GetNpcParentTransform(UInt16 stationIndex, NpcActionStatus npcActionStatus)
 {
     return(m_stationEngine.GetNpcParentTransform(stationIndex, npcActionStatus));
 }
Example #10
0
 public int GetNpcCount(UInt16 stationIndex, NpcActionStatus npcActionStatus)
 {
     return(m_stationEngine.GetNpcCount(stationIndex, npcActionStatus));
 }
    private void CreateNpc(NpcActionStatus npcActionStatus, PointStatus pointStatus)
    {
        NpcType    npcType = NpcType.None;
        GameObject npcGo   = m_npcFactory.CreateNpc(ref npcType);

        if (npcGo == null)
        {
            return;
        }
        Transform parentTrans = m_stationModule.GetNpcParentTransform(m_stationIndex, npcActionStatus);

        if (parentTrans == null)
        {
            return;
        }
        npcGo.transform.SetParent(parentTrans);
        Point point = null;

        if (pointStatus == PointStatus.Train_Up_Birth || pointStatus == PointStatus.Train_Down_Birth)
        {
            point = StationEngine.Instance.GetNoReservationPoint2RandomPointQueue(m_stationIndex, (int)pointStatus, 0, 16);
        }
        else
        {
            point = StationEngine.Instance.GetNoReservationPoint2RandomPointQueue(m_stationIndex, (int)pointStatus);
        }
        if (point == null)
        {
            return;
        }
        if (pointStatus != PointStatus.EnterStation)
        {
            point.IsReservation = true;
        }
        npcGo.transform.localPosition                = new Vector3(point.PosX, point.PosY, point.PosZ);
        npcGo.transform.localEulerAngles             = new Vector3(point.EulerAngleX, point.EulerAngleY, point.EulerAngleZ);
        npcGo.GetComponent <NavMeshAgent> ().enabled = true;

        NpcAction npcAction = null;

        switch (npcActionStatus)
        {
        case NpcActionStatus.EnterStationTrainUp_NpcActionStatus:
        {
            npcAction = npcGo.AddComponent <NpcEnterStationUpAction> ();
            npcAction.NpcActionStatus = NpcActionStatus.EnterStationTrainUp_NpcActionStatus;
            if (System.Object.ReferenceEquals(npcAction, null) == false)
            {
                npcAction.NpcType      = npcType;
                npcAction.StationIndex = m_stationIndex;
                m_stationModule.AddNpcAction(m_stationIndex, npcAction);
            }
            break;
        }

        case NpcActionStatus.EnterStationTrainDown_NpcActionStatus:
        {
            npcAction = npcGo.AddComponent <NpcEnterStationDownAction> ();
            npcAction.NpcActionStatus = NpcActionStatus.EnterStationTrainDown_NpcActionStatus;
            if (System.Object.ReferenceEquals(npcAction, null) == false)
            {
                npcAction.NpcType      = npcType;
                npcAction.StationIndex = m_stationIndex;
                m_stationModule.AddNpcAction(m_stationIndex, npcAction);
            }
            break;
        }

        case NpcActionStatus.ExitStationTrainUp_NpcActionStatus:
        {
            npcAction = npcGo.AddComponent <NpcExitStationUpAction_New> ();
            if (System.Object.ReferenceEquals(npcAction, null) == false)
            {
                npcAction.NpcType      = npcType;
                npcAction.StationIndex = m_stationIndex;
                m_stationModule.AddNpcAction(m_stationIndex, npcAction);
            }
            ((NpcExitStationUpAction_New)npcAction).StartAction(point);
            break;
        }

        case NpcActionStatus.ExitStationTrainDown_NpcActionStatus:
        {
            npcAction = npcGo.AddComponent <NpcExitStationDownAction_New> ();
            if (System.Object.ReferenceEquals(npcAction, null) == false)
            {
                npcAction.NpcType      = npcType;
                npcAction.StationIndex = m_stationIndex;
                m_stationModule.AddNpcAction(m_stationIndex, npcAction);
            }
            ((NpcExitStationDownAction_New)npcAction).StartAction(point);
            break;
        }

        default:
            break;
        }
    }