void AttackTarget()
    {
        BaseBehaviour attackableTarget = target.GetComponent <BaseBehaviour> ();

        attackableTarget.changeLife(-health);
        Die();
    }
Beispiel #2
0
    void HitTarget()                                                                   //quando il bersaglio è colpito...
    {
        if (target.tag == "Enemy")                                                     //se è un nemico...
        {
            Enemy_HealthBar HealthBarScript = target.GetComponent <Enemy_HealthBar>(); //...prendi lo script della vita del nemico...
            if (HealthBarScript != null)
            {
                HealthBarScript.TakeDamage(damage);                                         //... e chiama il comando per danneggiarlo
            }
        }

        if (target.tag == "Tower_Pos")                          //se è una torretta...
        {
            //Prendi lo script della healthbar della torre
            //danneggia la torre
            Turret_HealthBar HealthBarScript = target.GetComponent <Turret_HealthBar>();//...prendi lo script della vita della torretta...
            if (HealthBarScript != null)
            {
                HealthBarScript.TakeDamage(damage);                                         //... e chiama il comando per danneggiarla
            }
            //Debug.Log("Torre Danneggiata");
        }

        if (target.tag == "Base")                                                  //se è una base...
        {
            BaseBehaviour BaseHealtScript = target.GetComponent <BaseBehaviour>(); //prendi lo script della heathbar della base
            if (BaseHealtScript != null)
            {
                BaseHealtScript.BaseTakeDamage(damage); //danneggia la base
            }
            //Debug.Log("Base Danneggiata");
        }
        //Debug.Log("Ho colpito qualcosa!");
        Destroy(gameObject);                                    //Poi distruggi questo proiettile
    }
Beispiel #3
0
 public void Defuse(BaseBehaviour b, Team Team)
 {
     countingDown = false;
     team         = Team;
     timer        = timeToExplode;
     gameObject.SetActive(false);
 }
Beispiel #4
0
    static int Destroy(IntPtr L)
    {
        try
        {
            int count = LuaDLL.lua_gettop(L);

            if (count == 1)
            {
                UnityEngine.Object arg0 = (UnityEngine.Object)ToLua.CheckObject <UnityEngine.Object>(L, 1);
                BaseBehaviour.Destroy(arg0);
                return(0);
            }
            else if (count == 2)
            {
                UnityEngine.Object arg0 = (UnityEngine.Object)ToLua.CheckObject <UnityEngine.Object>(L, 1);
                float arg1 = (float)LuaDLL.luaL_checknumber(L, 2);
                BaseBehaviour.Destroy(arg0, arg1);
                return(0);
            }
            else
            {
                return(LuaDLL.luaL_throw(L, "invalid arguments to method: BaseBehaviour.Destroy"));
            }
        }
        catch (Exception e)
        {
            return(LuaDLL.toluaL_exception(L, e));
        }
    }
Beispiel #5
0
        public override void Start()
        {
            target = GetTarget();

            firePeriodically = FirePeriodically();
            StartCoroutine(firePeriodically);
        }
    public override void start(BaseBehaviour baseBehaviour)
    {
        base.start (baseBehaviour);

        m_RayDistance = RAY_DISTANCE;
        m_LayerMask = LayerMask.GetMask (Constants.PLAYER_STRING);
    }
    public override void start(BaseBehaviour baseBehaviour)
    {
        base.start(baseBehaviour);

        m_RayDistance = RAY_DISTANCE;
        m_LayerMask   = LayerMask.GetMask(Constants.PLAYER_STRING);
    }
Beispiel #8
0
    //将头放到尾
    public void HeadPutTaile()
    {
        BaseBehaviour FirstNode = _AIList.First.Value;

        _AIList.RemoveFirst();
        TailAddBehaviour(FirstNode);
    }
        public static void ScriptLoaded(DOLEvent e, object sender, EventArgs args)
        {
            if (!ServerProperties.Properties.LOAD_EXAMPLES)
            {
                return;
            }

            GameNPC[] npcs = WorldMgr.GetObjectsByName <GameNPC>("Sir Quait", eRealm.Albion);
            npcs = WorldMgr.GetObjectsByName <GameNPC>("Sir Quait", (eRealm)1);
            GameNPC SirQuait = null;

            if (npcs.Length == 0)
            {
                SirQuait       = new DOL.GS.GameNPC();
                SirQuait.Model = 40;
                SirQuait.Name  = "Sir Quait";
                if (log.IsWarnEnabled)
                {
                    log.Warn("Could not find " + SirQuait.Name + ", creating ...");
                }

                SirQuait.Realm           = eRealm.Albion;
                SirQuait.CurrentRegionID = 1;
                SirQuait.Size            = 50;
                SirQuait.Level           = 10;
                SirQuait.MaxSpeedBase    = 100;
                SirQuait.Faction         = FactionMgr.GetFactionByID(0);
                SirQuait.X               = 531971;
                SirQuait.Y               = 478955;
                SirQuait.Z               = 0;
                SirQuait.Heading         = 3570;
                SirQuait.RespawnInterval = 0;
                SirQuait.BodyType        = 0;

                StandardMobBrain brain = new StandardMobBrain();
                brain.AggroLevel = 0;
                brain.AggroRange = 0;
                SirQuait.SetOwnBrain(brain);

                SirQuait.AddToWorld();
            }
            else
            {
                SirQuait = npcs[0];
            }

            BaseBehaviour b = new BaseBehaviour(SirQuait);
            MessageAction a = new MessageAction(SirQuait, "This is just a simple test bahaviour.", eTextType.Emote);

            b.AddAction(a);
            InteractTrigger t = new InteractTrigger(SirQuait, b.NotifyHandler, SirQuait);

            b.AddTrigger(t);

            // store the behaviour in a list so it won't be garbage collected
            behaviours.Add(b);

            log.Info("Simple Test Behaviour added");
        }
        public static void ScriptLoaded(DOLEvent e, object sender, EventArgs args)
        {
            if (!ServerProperties.Properties.LOAD_EXAMPLES)
                return;

            #region defineNPCs

            GameNPC[] npcs = WorldMgr.GetNPCsByName("Sir Quait", eRealm.Albion);
            npcs = WorldMgr.GetNPCsByName("Sir Quait", (eRealm)1);
            GameNPC SirQuait = null;
            if (npcs.Length == 0)
            {
                SirQuait = new DOL.GS.GameNPC();
                SirQuait.Model = 40;
                SirQuait.Name = "Sir Quait";
                if (log.IsWarnEnabled)
                    log.Warn("Could not find " + SirQuait.Name + ", creating ...");
                SirQuait.Realm = eRealm.Albion;
                SirQuait.CurrentRegionID = 1;
                SirQuait.Size = 50;
                SirQuait.Level = 10;
                SirQuait.MaxSpeedBase = 100;
                SirQuait.Faction = FactionMgr.GetFactionByID(0);
                SirQuait.X = 531971;
                SirQuait.Y = 478955;
                SirQuait.Z = 0;
                SirQuait.Heading = 3570;
                SirQuait.RespawnInterval = 0;
                SirQuait.BodyType = 0;

                StandardMobBrain brain = new StandardMobBrain();
                brain.AggroLevel = 0;
                brain.AggroRange = 0;
                SirQuait.SetOwnBrain(brain);

                SirQuait.AddToWorld();
            }
            else
            {
                SirQuait = npcs[0];
            }

            #endregion defineNPCs

            #region defineBehaviours

            BaseBehaviour b = new BaseBehaviour(SirQuait);
            MessageAction a = new MessageAction(SirQuait, "This is just a simple test bahaviour.", eTextType.Emote);
            b.AddAction(a);
            InteractTrigger t = new InteractTrigger(SirQuait, b.NotifyHandler, SirQuait);
            b.AddTrigger(t);

            // store the behaviour in a list so it won't be garbage collected
            behaviours.Add(b);

            #endregion defineBehaviours

            log.Info("Simple Test Behaviour added");
        }
Beispiel #11
0
    public int CompareTo( object obj ) {
        if( obj is BaseBehaviour ) {
            BaseBehaviour thisObj = (BaseBehaviour) obj;
            return _StartupPriority.CompareTo( thisObj._StartupPriority );
        }
 
        return 0;
    }
Beispiel #12
0
 public void Plant(BaseBehaviour b, Team Team)
 {
     countingDown = true;
     team         = Team;
     timer        = timeToExplode;
     myBase       = b;
     gameObject.SetActive(true);
 }
Beispiel #13
0
 public static void SetAssetRef(GameObject goInstantiate, string resName)
 {
     if (!string.IsNullOrEmpty(resName))
     {
         BaseBehaviour baseBehaviour = goInstantiate.AddComponent <BaseBehaviour>();
         baseBehaviour.ResName = resName;
     }
 }
 // Use this for initialization
 void Start()
 {
     player      = transform.GetComponent <CharacterController>();
     myBehaviour = transform.GetComponent <BaseBehaviour>();
     animator    = transform.GetComponent <Animator>();
     //Initiate variables
     zoom        = -12f;
     sprintSpeed = moveSpeed * 6f;
     speedholder = moveSpeed;
 }
Beispiel #15
0
    public void RegisterBehaviour(BaseBehaviour behaviour)
    {
        if (m_behaviours.ContainsKey(behaviour.priority))
        {
            Debug.Log("Priority conflict registering behaviour {0}", behaviour);
            throw new System.Exception(string.Format("Priority conflict registering behaviour {0}", behaviour));
        }

        m_behaviours[behaviour.priority] = behaviour;
    }
Beispiel #16
0
 /// <summary>
 /// 右クリックすると,昼夜を反転できます.
 /// </summary>
 /// <param name="location"></param>
 /// <param name="interacter"></param>
 public void OnInteract(Vector3Int location, BaseBehaviour interacter)
 {
     if (Daylight.IsDay)
     {
         Daylight.GameTime = Daylight.RealTimeOfADay / 4 * 3;
     }
     else
     {
         Daylight.Day++;
         Daylight.GameTime = Daylight.RealTimeOfADay / 4;
     }
 }
Beispiel #17
0
    /// <summary>
    /// 初始化
    /// </summary>
    void Initialize()
    {
        BaseBehaviour.Initialize();
        DontDestroyOnLoad(gameObject);  //防止销毁自己

        var gameMgr = ManagementCenter.GetManager <GameManager>();

        if (gameMgr != null)
        {
            gameMgr.Initialize();   //初始化游戏管理器
        }
    }
Beispiel #18
0
    /// <summary>
    /// add a script from running it's secondary thread loop code
    /// </summary>
    /// <param name="b"></param>
    public static void registerScriptSecondaryThread(BaseBehaviour b)
    {
        if (instance == null && !isPlaying)
        {
            return;
        }

        if (!instance.SecondThreadScripts.Contains(b))
        {
            instance.SecondThreadScripts.Add(b);
        }
    }
Beispiel #19
0
 static public int Init(IntPtr l)
 {
     try {
         BaseBehaviour self = (BaseBehaviour)checkSelf(l);
         self.Init();
         pushValue(l, true);
         return(1);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Beispiel #20
0
 public static T GetManager <T>() where T : class
 {
     if (typeof(T) == typeof(ConfigManager))
     {
         return(BaseBehaviour.configMgr as T);
     }
     else if (typeof(T) == typeof(TableManager))
     {
         return(BaseBehaviour.tableMgr as T);
     }
     return(BaseBehaviour.GetManager <T>());
 }
Beispiel #21
0
    /// <summary>
    /// remove a script from running it's main update loop code
    /// </summary>
    /// <param name="b"></param>
    public static void unregisterScriptMainThread(BaseBehaviour b)
    {
        if (instance == null && !isPlaying)
        {
            return;
        }

        if (instance.MainThreadScripts.Contains(b))
        {
            instance.MainThreadScripts.Remove(b);
        }
    }
Beispiel #22
0
 static public int get_trans(IntPtr l)
 {
     try {
         BaseBehaviour self = (BaseBehaviour)checkSelf(l);
         pushValue(l, true);
         pushValue(l, self.trans);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Beispiel #23
0
 static public int GetComponentInMy(IntPtr l)
 {
     try {
         BaseBehaviour self = (BaseBehaviour)checkSelf(l);
         var           ret  = self.GetComponentInMy <UnityEngine.Component>();
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Beispiel #24
0
 static int Initialize(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 0);
         BaseBehaviour.Initialize();
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
 public UnityMaterialAsset(BaseBehaviour owner)
 {
     this.owner = owner;
     UnityEngine.Renderer renderer = owner.GetComponent <UnityEngine.Renderer>();
     if (null != renderer)
     {
         this.material = renderer.material;
     }
     else
     {
         this.material = null;
     }
 }
Beispiel #26
0
 static int OnUpdate(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         float arg0 = (float)LuaDLL.luaL_checknumber(L, 1);
         BaseBehaviour.OnUpdate(arg0);
         return(0);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Beispiel #27
0
 static int GetManager(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 1);
         string arg0 = ToLua.CheckString(L, 1);
         FirClient.Manager.BaseManager o = BaseBehaviour.GetManager(arg0);
         ToLua.PushObject(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
    public void TestMethod2(BaseBehaviour baseBehaviour, DerivedBehaviour derivedBehaviour)
    {
        // Suspicious comparison warnings
        if (baseBehaviour == this)
        {
        }
        if (baseBehaviour != this)
        {
        }

        // No warnings
        if (baseBehaviour == derivedBehaviour)
        {
        }
    }
Beispiel #29
0
 static int Instantiate(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         BaseBehaviour      obj  = (BaseBehaviour)ToLua.CheckObject <BaseBehaviour>(L, 1);
         UnityEngine.Object arg0 = (UnityEngine.Object)ToLua.CheckObject <UnityEngine.Object>(L, 2);
         UnityEngine.Object o    = obj.Instantiate(arg0);
         ToLua.Push(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
Beispiel #30
0
 static int StartCoroutine(IntPtr L)
 {
     try
     {
         ToLua.CheckArgsCount(L, 2);
         BaseBehaviour obj = (BaseBehaviour)ToLua.CheckObject <BaseBehaviour>(L, 1);
         System.Collections.IEnumerator arg0 = ToLua.CheckIter(L, 2);
         UnityEngine.Coroutine          o    = obj.StartCoroutine(arg0);
         ToLua.PushSealed(L, o);
         return(1);
     }
     catch (Exception e)
     {
         return(LuaDLL.toluaL_exception(L, e));
     }
 }
    private void ChangeBehaviour(AiBehaviour behaviour, float transitionTime)
    {
        if (_activeAi != null)
        {
            _activeAi.End();
        }

        // Stop movement prior to behaviour change, or else enemy will move towards its
        // old movement direction during the wait period.
        _motor.StopUntilResumed();

        // Set new behaviour
        _activeAi = GetBehaviour(behaviour);
        _activeAi.Begin();

        _activeBehaviour = behaviour;

        // Simulate transition to new behaviour by waiting for a short time
        Wait(transitionTime);
    }
Beispiel #32
0
        IEnumerator FirePeriodically()
        {
            while (true)
            {
                if (!targetIsAlive)
                {
                    _target = GetTarget();
                    if (_target != null)
                    {
                        targetIsAlive = true;
                    }
                }
                var offset = Random.Range(minFireDelayOffset,
                                          maxFireDelayOffset);

                yield return(new WaitForSeconds(offset));

                InnerBus.FireBullet.Invoke();

                yield return(new WaitForSeconds(fireDelay - offset));
            }
        }
Beispiel #33
0
 public override void start(BaseBehaviour baseBehaviour)
 {
 }
Beispiel #34
0
 public override void start(BaseBehaviour baseBehaviour)
 {
     m_Perception = GetComponentInParent<Perception> ();
 }
Beispiel #35
0
 public override void start(BaseBehaviour baseBehaviour)
 {
     //Get our base behaviour projectile
     m_ProjectilePrefab = baseBehaviour.getProjectilePrefab ();
 }
    public static IEnumerable<Dictionary<FieldInfo, string>> GetAllProfileCombinationsForInstance(BaseBehaviour instance)
    {
        var dict = new Dictionary<FieldInfo, List<string>>();

        foreach (var fieldOuter in instance.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance))
        {
            var attributes = fieldOuter.GetCustomAttributes(typeof (SettingInstanceNameSelectorAttribute), true);

            if (attributes.Length > 0)
            {
                var fieldOptions = new List<string>();
                var range = (SettingInstanceNameSelectorAttribute) attributes[0];

                if (_configurationGameObjects == null)
                {
                    _configurationGameObjects = Resources.LoadAll("Configuration").OfType<GameObject>().ToList();
                }

                foreach (var res in _configurationGameObjects)
                {
                    var components = res.GetComponents(range.BaseSettingStoreType);
                    if (components.Length > 0)
                    {
                        var settingsStoreInstanceName =
                            (from field in
                                components[0].GetType().GetFields(BindingFlags.Public | BindingFlags.Instance)
                                    .OrderBy(x => x.FieldType.Name)
                                    .ThenBy(x => x.Name)
                                let attrs = field.GetCustomAttributes(false)
                                where attrs.OfType<SettingInstanceNameAttribute>().Any()
                                select (string) field.GetValue(components[0])).FirstOrDefault();

                        fieldOptions.Add(settingsStoreInstanceName);
                    }
                }

                dict[fieldOuter] = fieldOptions;
            }
        }

        var fields = dict.Keys.ToList();
        var stack = new Stack<int>();

        while (fields.Count != 0)
        {
            if (stack.Count < fields.Count)
            {
                stack.Push(0);
            }
            else if (stack.Count == fields.Count)
            {
                var indices = stack.ToArray().Reverse().ToArray();
                var tempDict = new Dictionary<FieldInfo, string>();
                for (var i = 0; i < indices.Length; i++)
                {
                    tempDict.Add(fields[i], dict[fields[i]][indices[i]]);
                }
                yield return tempDict;
                stack.Push(stack.Pop() + 1);
                while (stack.Peek() >= dict[fields[stack.Count - 1]].Count)
                {
                    stack.Pop();
                    if (stack.Count == 0)
                    {
                        yield break;
                    }
                    var old = stack.Peek();
                    stack.Pop();
                    stack.Push(old + 1);
                }
            }
        }
    }
 public override void start(BaseBehaviour baseBehaviour)
 {
     base.start(baseBehaviour);
     PatrolNodes = baseBehaviour.getPathNodes ();
     m_NodeCount = PatrolNodes.Length;
 }
Beispiel #38
0
 //YOU MUST CALL THIS START FOR INSIDE EVERY BEHAVIOUR THAT HAS A COMPONENT
 public abstract void start(BaseBehaviour baseBehaviour);