Beispiel #1
0
 void ShowEnemyDefList()
 {
     scroll[0] = EditorGUILayout.BeginScrollView(scroll[0], GUILayout.MinWidth(120));
     {
         if (EnemyDefList == null)
         {
             return;
         }
         for (int i = 0; i < EnemyDefList.Count; i++)
         {
             string enemyName = EnemyDefList[i].CommonProperty.Name;
             if (enemyName == null || enemyName.Equals(""))
             {
                 enemyName = "无名敌人";
             }
             if (GUILayout.Button(enemyName, i == ActiveIndex ? RPGEditorGUI.ListItemSelectedStyle : RPGEditorGUI.ListItemBackLightStyle, GUILayout.MaxWidth(150)))
             {
                 ActiveIndex    = i;
                 ActiveEnemyDef = EnemyDefList[i];
             }
         }
         EditorGUILayout.Space();
     }
     EditorGUILayout.EndScrollView();
 }
        //---readers

        void FightCteated_Reader(ReceivedMsg receivedMsg, FightCteatedMessage msg)
        {
            FightController fightController = new FightController(_client, msg.KnifeIndex);
            EnemyDef        enemyDef        = new EnemyDef(msg.EnemyUserName, msg.EnemyKnifeName, msg.EnemyKnifeMode);

            FigthCreated?.Invoke(this, fightController, enemyDef);
        }
Beispiel #3
0
    private static GameObject OP_OnCreate(EnemyDef def)
    {
        var obj = Object.Instantiate(def.Prefab);

        obj.name = def.Name;
        return(obj);
    }
Beispiel #4
0
 private static ObjectPool <GameObject> GetPool(EnemyDef def)
 {
     if (!enemyPoolDict.ContainsKey(def.Name))
     {
         enemyPoolDict.Add(def.Name, new ObjectPool <GameObject>(() => OP_OnCreate(def), OP_OnGet, OP_OnReturn, 10));
     }
     return(enemyPoolDict[def.Name]);
 }
Beispiel #5
0
 void OnFocus()
 {
     if (EnemyDefList.Count > 0)
     {
         ActiveIndex    = 0;
         ActiveEnemyDef = EnemyDefList[0];
     }
 }
Beispiel #6
0
 private RPGEnemy(EnemyDef def)
 {
     if (def.PlayerDef == null)
     {
         Debug.LogError("EnemyDef_" + def.CommonProperty.ID + " is null");
     }
     SetDataFromDef(def.PlayerDef);
     SetAI(def.AI);
     SetCamp(EnumCharacterCamp.Enemy);
 }
Beispiel #7
0
 public EnemyController(EnemyDef def, EnemyView view, Transform target)
 {
     _def             = def;
     _view            = view;
     _view.controller = this;
     _agent           = view.agent;
     _target          = target;
     _dispatcher      = Singleton.instance.notificationDispatcher;
     string[] maskList = { "CombatPlayer", "BasicBlock", "Parent" };
     _playerLayer = LayerMask.GetMask(maskList);
 }
Beispiel #8
0
    public static RPGEnemy Create(int id, CharacterAttribute customAttribute = null)
    {
        EnemyDef def = ResourceManager.GetEnemyDef(id);
        RPGEnemy r   = new RPGEnemy(def);

        if (customAttribute != null)
        {
            r.logic.SetAttribute(customAttribute);
        }
        return(r);
    }
Beispiel #9
0
    public EnemySystem(
        GameplayResources gameplayResources,
        GameConfig gameConfig,
        PlayerCombatSystem playerCombatSystem)
    {
        _gameplayResources = gameplayResources;
        _gameConfig        = gameConfig;

        _enemyDef = _gameConfig.enemyConfig.basicEnemy;

        _dispatcher = Singleton.instance.notificationDispatcher;
        _dispatcher.AddListener(GameplayEventType.ENEMY_KILLED, OnEnemyDestroyed);
    }
Beispiel #10
0
        public static EnemyDef CreateProps()
        {
            int count = ScriptableObjectUtility.GetFoldFileCount(DIRECTORY_PATH);

            EnemyDef enemy = ScriptableObjectUtility.CreateAsset <EnemyDef>(
                count.ToString(),
                DIRECTORY_PATH,
                true
                );

            enemy.CommonProperty.ID = count;
            return(enemy);
        }
Beispiel #11
0
        void OnSetUnit()
        {
            EnemyDef def = unitSetting.GetDef(new Vector2Int(x, y));

            if (def == null)
            {
                EnemyUnitSettingWindow.OpenSetEnemyWindow(x, y, unitSetting, def, 0);
            }
            else
            {
                EnemyUnitSettingWindow.OpenSetEnemyWindow(x, y, unitSetting, def, def.CommonProperty.ID);
            }
        }
Beispiel #12
0
        public virtual void AssignDef(EnemyDef newDef, Vector2 position = default(Vector2), Direction facingDirection = Direction.Unspecified)
        {
            if (!IsInitialized)
            {
                Initialize();                 //Gets executed the first time this function runs (when we are created rather than drawn from the pool)
            }

            groundHandler.Reset();

            Def = newDef;

            transform.position = position.ToV3();
            transform.rotation = Quaternion.identity;

            //(ADVANCED) Force override
            if (!newDef.ForceIgnore)
            {
                Sprite.transform.localScale = new Vector3(Def.Scale, Def.Scale, 1f);

                switch (Def.DefaultAnchorPoint)
                {
                case SpriteAnchorPoint.BottomCenter: Sprite.transform.localPosition = Vector3.zero; break;

                case SpriteAnchorPoint.Center: Sprite.transform.localPosition = new Vector3(0f, (Def.Scale * Def.CellSize.y) / (2f * Def.PixelsPerUnit), 0f); break;
                }

                //Set facing direction - use default if not specified
                FacingDirection = (facingDirection == Direction.Unspecified) ? Def.DefaultFacingDirection : facingDirection;

                //Set collider - At this point, sprite is guaranteed to be centered on the x and at the bottom on the y.
                Collider.size   = Def.VisibleSize * Def.Scale;
                Collider.offset = new Vector2(0f, Collider.size.y / 2f);
            }

            //Set animator override
            if (Def.Animations == null)
            {
                Debug.LogError(string.Format("Animator Override Controller not set on '{0}' enemy def!", Def.Name));
            }
            Animator.runtimeAnimatorController = Def.Animations;
        }
        private Enemy CreateEnemyFromDef(EnemyDef definition)
        {
            Enemy enemy = new Enemy(_textureManager, _effectsManager, _bulletManager);

            if (definition.EnemyType == "cannon_fodder")
            {
                List<Vector> _pathPoints = new List<Vector>();
                _pathPoints.Add(new Vector(1400, 0, 0));
                _pathPoints.Add(new Vector(0, 250, 0));
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 10);
            }
            else if (definition.EnemyType == "cannon_fodder_low")
            {
                List<Vector> _pathPoints = new List<Vector>();
                _pathPoints.Add(new Vector(1400, 0, 0));
                _pathPoints.Add(new Vector(0, -250, 0));
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 10);
            }
            else if (definition.EnemyType == "cannon_fodder_straight")
            {
                List<Vector> _pathPoints = new List<Vector>();
                _pathPoints.Add(new Vector(1400, 0, 0));
                _pathPoints.Add(new Vector(-1400, 0, 0));

                enemy.Path = new Path(_pathPoints, 14);
            }
            else if (definition.EnemyType == "up_l")
            {
                List<Vector> _pathPoints = new List<Vector>();
                _pathPoints.Add(new Vector(500, -375, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(-1400, 200, 0));

                enemy.Path = new Path(_pathPoints, 10);
            }
            else if (definition.EnemyType == "down_l")
            {
                List<Vector> _pathPoints = new List<Vector>();
                _pathPoints.Add(new Vector(500, 375, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(500, 0, 0));
                _pathPoints.Add(new Vector(-1400, -200, 0));

                enemy.Path = new Path(_pathPoints, 10);
            }
            else
            {
                System.Diagnostics.Debug.Assert(false, "Unknown enemy type.");
            }

            return enemy;
        }
Beispiel #14
0
 public EnemyUnit(int x, int y, EnemyDef enemy = null)
 {
     Coord = new Vector2Int(x, y);
     Enemy = enemy;
 }
Beispiel #15
0
 public void OnEnable()
 {
     enemy = target as EnemyDef;
 }
Beispiel #16
0
 public EnemyUnit(Vector2Int p, EnemyDef enemy = null)
 {
     Coord = p;
     Enemy = enemy;
 }
Beispiel #17
0
    static void DebugPool(EnemyDef def)
    {
        var pool = GetPool(def);

        Debug.Log(string.Format("Name: {0} | Active: {1} | Inactive: {2} | Total: {3} | Max: {4}", def.Name, pool.ActiveItems, pool.AvailableItems, pool.TotalItems, pool.MaxPooledItems));
    }
Beispiel #18
0
        private void MainServerController_FigthCreated(MainServerController mainServerController, FightController fightController, EnemyDef enemyDef)
        {
            fightController.FightEnd += FightController_FightEnd;
            _bot = new FightBot(_client.Login, _isWolf, fightController);

            fightController.KnifeThrow += FightController_KnifeThrow;
            fightController.SendReady();
        }
Beispiel #19
0
        public static void OpenSetEnemyWindow(int x, int y, EnemyUnitSetting setting, EnemyDef enemy, int index)
        {
            OpenWindow();
            m_bMedify = true;
            previousX = x;
            previousY = y;

            UnitSetting = setting;
            unit        = new EnemyUnitSetting.EnemyUnit(x, y);
            unit.Enemy  = enemy;
            if (enemy == null)
            {
                unit.Enemy = EnemyDefList[0];
            }
            ActiveIndex = index;
        }
Beispiel #20
0
 public EnemyDelay(EnemyDef enemyDef, float delay)
 {
     EnemyDef = enemyDef;
     Delay    = delay;
 }