示例#1
0
        private void Start()
        {
            _actorController = Utils.InterfaceHelper.GetInterfaceComponent <IActorController>(this);

            if (_actorController == null)
            {
                Debug.LogError("No IActorController found");
                gameObject.SetActive(false);
                return;
            }

            if (_actorController.isLocalPlayer)
            {
                OnEnable();
            }

            _camera = FindObjectOfType <CameraBehavior>();

            if (_camera == null)
            {
                Debug.LogError("No CameraBehavior found");
                return;
            }

            if (_actorController.isLocalPlayer)
            {
                _camera.SetTarget(this.transform);
            }

            OnStart();
        }
示例#2
0
 private void Start()
 {
     this.animator        = this.GetComponent <Animator>();
     this.body            = this.GetComponent <Rigidbody2D>();
     this.spriteRenderer  = this.GetComponent <SpriteRenderer>();
     this.actorController = this.GetComponent <IActorController>();
 }
示例#3
0
 public void Init(IActorController actorController, IActorInitializer actorInitializer, IUiConfig uiConfig, IGameConfig gameConfig)
 {
     _actorController  = actorController;
     _actorInitializer = actorInitializer;
     _uiConfig         = uiConfig;
     _gameConfig       = gameConfig;
 }
示例#4
0
    // Use this for initialization
    public virtual void Start()
    {
        boxCollider     = GetComponent <BoxCollider2D>();
        actorController = GetComponent <IActorController>();
        if (actorController == null && transform.parent)
        {
            // search in parent
            actorController = transform.parent.GetComponent <IActorController>();
        }

        actorGameObject = gameObject;
        if (destroyParent)
        {
            actorGameObject = transform.parent.gameObject;
        }

        spriteRenderer = GetComponent <SpriteRenderer>();
        if (!spriteRenderer && transform.parent)
        {
            // search in parent
            spriteRenderer = transform.parent.GetComponent <SpriteRenderer>();
        }

        lootController = GetComponent <IChildGenerator>();
        if (lootController == null && transform.parent)
        {
            // search in parent
            lootController = transform.parent.GetComponent <IChildGenerator>();
        }

        ModifyHealth(0);
    }
示例#5
0
 private void FindController()
 {
     if (_controller == null || !_controller.Enabled)
     {
         _controller = this.GetInterfaceComponents <IActorController <TActor> >()
                       .FirstOrDefault(controller => controller.Enabled);
     }
 }
 public CommonPlayerActionHandler(IActorController actionController)
 {
     this.ActController = actionController;
     mTouchHandler      = TouchHandler.GetInstance();
     mStateHelper       = new StateHelper();
     mStateHelper.SetActionController(actionController);
     mStateHelper.UseNet = true;
     InitStatus();
 }
示例#7
0
 public void Start()
 {
     boxCollider     = GetComponent <BoxCollider2D>();
     actorController = GetComponent <IActorController>();
     if (actorController == null && transform.parent != null)
     {
         // search in parent
         actorController = transform.parent.GetComponent <IActorController>();
     }
 }
示例#8
0
 void IStatus.Init(IActorController controller, StateHelper helper)
 {
     mController   = controller;
     mStateHelper  = helper;
     mTouchHandler = TouchHandler.GetInstance();
     fightTouch    = FightTouch._instance;
     AddCondition(IsUnderAttack, STATUS.HIT);
     AddCondition(IsControlPassive, STATUS.IDLE);//stop the state matchine update by using idle state anyway
     AddCondition(IsCanNotControl, STATUS.CANNOTCONTROL);
 }
示例#9
0
        void Start()
        {
            actorPhysics = GetComponent <ActorPhysics2D>();

            if (actorController == null)
            {             // no controller eh?
                actorController = GetComponent <IActorController>();
            }

            actorController.OnActorControl(this);
            actorController.enabled = true;
        }
示例#10
0
        public void Depossess()
        {
            inputVector     = Vector2.zero;
            actorController = storedController;
            if (actorController == null)
            {            // no controller eh?
                actorController = GetComponent <IActorController>();
                actorController.OnActorControl(this);
            }

            actorController.enabled = true;
        }
示例#11
0
        public bool Possess(IActorController icontroller)
        {
            if (actorController is PlayerActorController)
            {
                return(false);
            }

            if (actorController != null)
            {             // this is probably the player possessing; store this controller for later
                storedController         = actorController;
                storedController.enabled = false;
            }

            actorController = icontroller;
            actorController.OnActorControl(this);
            return(true);
        }
示例#12
0
        private void Start()
        {
            _actorController = Utils.InterfaceHelper.GetInterfaceComponent <IActorController>(this);

            if (_actorController == null)
            {
                Debug.LogError("No IActorController found");
                gameObject.SetActive(false);
                return;
            }

            if (_actorController.isLocalPlayer)
            {
                OnEnable();
            }

            OnStart();
        }
示例#13
0
文件: Actor.cs 项目: AkirAssasin/ld48
    // initialize function
    public void Initialize(IActorController controller, GameManager gameManager, int depth, int cell, bool doFadeIn)
    {
        // reference controller
        m_controller = controller;

        // reference game manager
        m_gameManager = gameManager;

        // get components
        if (m_transform == null)
        {
            m_transform = GetComponent <Transform>();
            m_renderer  = GetComponent <SpriteRenderer>();
        }

        // enter corridor
        m_currentDepth = depth;
        EnterCorridor(m_gameManager.GetCorridor(m_currentDepth), cell);

        // reset values
        m_gunCooldown        = 0f;
        m_isDead             = false;
        m_immuneToMelee      = false;
        m_immuneToProjectile = false;

        // face random direction
        m_facingRight    = Random.value > 0.5f;
        m_renderer.flipX = !m_facingRight;

        // initialize renderer
        m_renderer.color   = doFadeIn ? Color.clear : m_color;
        m_renderer.sprite  = doFadeIn ? GameManager.s_gameSettings.actorReadySprite : GameManager.s_gameSettings.actorAimSprite;
        m_renderer.enabled = true;

        // do fade in
        if (doFadeIn)
        {
            GameManager.s_gameSettings.appearSFX.Play(m_sfxVolume);
            m_currentAction = m_currentAction.StartCoroutine(this, FadeInAction());
        }
    }
示例#14
0
 public void SetActionController(IActorController controller)
 {
     this.mActionController = controller;
     IsPlayer = RoleEnum.IsPlayer(controller.GetRoleType());
 }
示例#15
0
 public void SetActorController(IActorController icontroller)
 {
     actorController = icontroller;
     actorController.OnActorControl(this);
 }
示例#16
0
 public static IActionHandler CreateCommonActionHandler(IActorController actionController, IStatusHandler statusHandler, MobaObjectID type)
 {
     return(new CommonPlayerActionHandler(actionController, statusHandler));
 }