コード例 #1
0
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="sceneObject"></param>
 ///<param name="lifetime"></param>
 protected TriggerLimitedLifetime(
     IEntitySceneObject sceneObject,
     int lifetime)
     : base(sceneObject)
 {
     Lifetime = lifetime;
 }
コード例 #2
0
ファイル: Projectile.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="entitySceneObject"></param>
 ///<param name="target"></param>
 ///<param name="shooterId"></param>
 ///<param name="origin"></param>
 ///<param name="heading"></param>
 ///<param name="damage"></param>
 ///<param name="scale"></param>
 ///<param name="maxSpeed"></param>
 ///<param name="mass"></param>
 ///<param name="maxForce"></param>
 protected Projectile(
     IEntitySceneObject entitySceneObject,
     Vector2 target, //the target's position
     uint shooterId, //the Id of the bot that fired this shot
     Vector2 origin, //the start position of the projectile
     Vector2 heading, //the heading of the projectile
     int damage, //how much damage it inflicts
     float scale,
     float maxSpeed,
     float mass,
     float maxForce)
     : base(entitySceneObject,
         origin,
         scale,
         new Vector2(0, 0),
         maxSpeed,
         heading,
         mass,
         new Vector2(scale, scale),
         0, //max turn rate irrelevant here, all shots go straight
         maxForce)
 {
     _target = target;
     _isDead = false;
     _hasImpacted = false;
     _damageInflicted = damage;
     _origin = origin;
     _shooterId = shooterId;
     _timeOfCreation = Time.TimeNow;
     Facing = Heading; //for projectiles, Facing == Heading
 }
コード例 #3
0
ファイル: Trigger.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="sceneObject"></param>
 protected Trigger(IEntitySceneObject sceneObject)
     : base(sceneObject)
 {
     MarkForDelete = false;
     IsActive = true;
     NodeIndex = GraphNode.INVALID_NODE_INDEX;
     RegionOfInfluence = null;
 }
コード例 #4
0
ファイル: GraveMarker.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="position"></param>
 ///<param name="facing"></param>
 ///<param name="lifetime"></param>
 ///<param name="entitySceneObject"></param>
 public GraveMarker(
     Vector2 position,
     Vector2 facing,
     float lifetime,
     IEntitySceneObject entitySceneObject)
     : base(entitySceneObject)
 {
     _lifeTime = lifetime;
     _timeCreated = Time.TimeNow;
     Position = position;
     Facing = facing;
     _markForDelete = false;
 }
コード例 #5
0
ファイル: ProjectileBolt.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="shooter"></param>
 ///<param name="target"></param>
 ///<param name="entitySceneObject"></param>
 public ProjectileBolt(
     BotEntity shooter,
     Vector2 target,
     IEntitySceneObject entitySceneObject)
     : base(entitySceneObject,
         target,
         shooter.ObjectId,
         shooter.Position,
         Vector2.Normalize(target - shooter.Position),
         (int) GameManager.GameManager.Instance.Parameters.BoltDamage,
         GameManager.GameManager.Instance.Parameters.BotScale,
         GameManager.GameManager.Instance.Parameters.BoltMaxSpeed,
         GameManager.GameManager.Instance.Parameters.BoltMass,
         GameManager.GameManager.Instance.Parameters.BoltMaxForce)
 {
     _previousPosition = Position;
 }
コード例 #6
0
ファイル: ProjectileSlug.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="shooter"></param>
 ///<param name="target"></param>
 ///<param name="entitySceneObject"></param>
 public ProjectileSlug(
     BotEntity shooter,
     Vector2 target,
     IEntitySceneObject entitySceneObject)
     : base(entitySceneObject,
         target,
         shooter.ObjectId,
         shooter.Position,
         Vector2.Normalize(target - shooter.Position),
         (int) GameManager.GameManager.Instance.Parameters.SlugDamage,
         GameManager.GameManager.Instance.Parameters.SlugScale,
         GameManager.GameManager.Instance.Parameters.SlugMaxSpeed,
         GameManager.GameManager.Instance.Parameters.SlugMass,
         GameManager.GameManager.Instance.Parameters.SlugMaxForce)
 {
     _previousPosition = Position;
     _timeShotIsVisible =
         GameManager.GameManager.Instance.Parameters.SlugPersistence;
 }
コード例 #7
0
ファイル: ProjectileRocket.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="shooter"></param>
 ///<param name="target"></param>
 ///<param name="entitySceneObject"></param>
 public ProjectileRocket(
     BotEntity shooter,
     Vector2 target,
     IEntitySceneObject entitySceneObject)
     : base(entitySceneObject,
         target,
         shooter.ObjectId,
         shooter.Position,
         Vector2.Normalize(target - shooter.Position),
         (int) GameManager.GameManager.Instance.Parameters.RocketDamage,
         GameManager.GameManager.Instance.Parameters.RocketScale,
         GameManager.GameManager.Instance.Parameters.RocketMaxSpeed,
         GameManager.GameManager.Instance.Parameters.RocketMass,
         GameManager.GameManager.Instance.Parameters.RocketMaxForce)
 {
     _previousPosition = Position;
     _currentBlastRadius = 0.0f;
     _maxBlastRadius =
         GameManager.GameManager.Instance.Parameters.RocketBlastRadius;
 }
コード例 #8
0
ファイル: MovingEntity.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///constructor
 ///</summary>
 ///<param name="entitySceneObject"></param>
 ///<param name="position"></param>
 ///<param name="radius"></param>
 ///<param name="velocity"></param>
 ///<param name="maxSpeed"></param>
 ///<param name="heading"></param>
 ///<param name="mass"></param>
 ///<param name="scale"></param>
 ///<param name="maxTurnRate"></param>
 ///<param name="maxForce"></param>
 protected MovingEntity(
     IEntitySceneObject entitySceneObject,
     Vector2 position,
     float radius,
     Vector2 velocity,
     float maxSpeed,
     Vector2 heading,
     float mass,
     Vector2 scale,
     float maxTurnRate,
     float maxForce)
     : base(entitySceneObject)
 {
     _heading = heading;
     _side = Vector2Util.Perp(heading);
     Velocity = velocity;
     Mass = mass;
     _maxSpeed = maxSpeed;
     _maxTurnRate = maxTurnRate;
     _maxForce = maxForce;
     Position = position;
     BoundingRadius = radius;
     Scale = scale;
 }
コード例 #9
0
ファイル: BotEntity.cs プロジェクト: funkjunky/Raven
        ///<summary>
        ///constructor
        ///</summary>
        ///<param name="entitySceneObject"></param>
        ///<param name="pos"></param>
        public BotEntity(IEntitySceneObject entitySceneObject, Vector2 pos)
            : base(entitySceneObject,
                pos,
                GameManager.GameManager.Instance.Parameters.BotScale,
                Vector2.Zero,
                GameManager.GameManager.Instance.Parameters.BotMaxSpeed,
                Vector2.One, // initial heading
                GameManager.GameManager.Instance.Parameters.BotMass,
                Vector2.Normalize(Vector2.One)*
                GameManager.GameManager.Instance.Parameters.BotScale,
                GameManager.GameManager.Instance.Parameters.BotMaxHeadTurnRate,
                GameManager.GameManager.Instance.Parameters.BotMaxForce)
        {
            _maxHealth = GameManager.GameManager.Instance.Parameters.BotMaxHealth;
            CurrentHealth = 10;
            _pathPlanner = null;
            _steering = null;
            _brain = null;
            NumUpdatesHitPersistent =
                (int) GameManager.GameManager.Instance.Parameters.HitFlashTime;
            Hit = false;
            Score = 0;
            _status = Statuses.Spawning;
            IsPossessed = false;
            _fieldOfView =
                MathHelper.ToRadians(GameManager.GameManager.Instance.Parameters.BotFOV);
            _maxNormalSpeed = GameManager.GameManager.Instance.Parameters.BotMaxSpeed;
            _maxSwimmingSpeed =
                GameManager.GameManager.Instance.Parameters.BotMaxSwimmingSpeed;
            _maxCrawlingSpeed =
                GameManager.GameManager.Instance.Parameters.BotMaxCrawlingSpeed;

            EntityType = EntityTypes.Bot;

            //a bot starts off facing in the direction it is heading
            Facing = Heading;

            //create the navigation module
            _pathPlanner = new PathPlanner(this);

            //create the steering behavior class
            _steering = new Steering.Steering(this);

            //create the regulators
            _weaponSelectionRegulator =
                new Regulator(
                    GameManager.GameManager.Instance.Parameters.BotWeaponSelectionFrequency);
            _goalArbitrationRegulator =
                new Regulator(
                    GameManager.GameManager.Instance.Parameters.BotGoalAppraisalUpdateFreq);
            _targetSelectionRegulator =
                new Regulator(
                    GameManager.GameManager.Instance.Parameters.BotTargetingUpdateFreq);
            _triggerTestRegulator =
                new Regulator(
                    GameManager.GameManager.Instance.Parameters.BotTriggerUpdateFreq);
            _visionUpdateRegulator =
                new Regulator(
                    GameManager.GameManager.Instance.Parameters.BotVisionUpdateFreq);

            //create the goal queue
            _brain = new Think(this);

            //create the targeting system
            _targetingSystem = new TargetingSystem(this);

            _weaponSystem = new WeaponSystem(this,
                                             GameManager.GameManager.Instance.Parameters.BotReactionTime,
                                             GameManager.GameManager.Instance.Parameters.BotAimAccuracy,
                                             GameManager.GameManager.Instance.Parameters.BotAimPersistence);

            _sensoryMemory =
                new SensoryMemory(
                    this,
                    GameManager.GameManager.Instance.Parameters.BotMemorySpan);

            _navigationalMemory =
                new NavigationalMemory(this, GameManager.GameManager.Instance.Parameters.NavigationMemorySpan);

            //temp debbugging code
            _navigationalMemory.DumpFrequency = 10000; // 10 seconds

            FoundTriggers = new FoundTriggerList(Team);

            _logPrefixText =
                String.Format("[{0,-8}] [{1,17}.", Name, "BotEntity");
        }
コード例 #10
0
ファイル: TriggerRespawning.cs プロジェクト: funkjunky/Raven
 ///<summary>
 ///Constructor for the base of a respawning trigger
 ///</summary>
 ///<param name="sceneObject"></param>
 protected TriggerRespawning(IEntitySceneObject sceneObject)
     : base(sceneObject)
 {
     _timeBetweenRespawns = 0;
     _timeUntilRespawn = 0;
 }