Exemplo n.º 1
0
 public ShotBulletGameRule(GunSlinger shooter, Gun usedGun, GunSlingerGameRule gunSlingerGameRule)
 {
     this.shooter            = shooter;
     this.usedGun            = usedGun;
     this.gunSlingerGameRule = gunSlingerGameRule;
     gunSlingerGameRule.SubscribeDeath(this);
 }
    protected override void OnStartGunSlinger(GunSlinger gunSlinger)
    {
        GunSlingerGameRule gunSlingerGameRule = new GunSlingerGameRule();

        gunSlinger.RuleManager.overridedGameRule             = gunSlingerGameRule;
        gunSlinger.EquippedGun.RuleManager.overridedGameRule = new EquippedGunGameRule(gunSlinger, gunSlingerGameRule);
        gunSlinger.Load();
    }
Exemplo n.º 3
0
 void GunSlingerGameRule.DeathSubscriber.OnDeath(GunSlingerGameRule gunSlinger)
 {
     this.shooter       = null;
     gunSlingerGameRule = null;
 }
Exemplo n.º 4
0
 public EquippedGunGameRule(GunSlinger gunSlinger, GunSlingerGameRule gunSlingerGameRule)
 {
     this.gunSlinger         = gunSlinger;
     this.gunSlingerGameRule = gunSlingerGameRule;
     gunSlingerGameRule.SubscribeDeath(this);
 }
Exemplo n.º 5
0
    protected virtual void OnFireEquippedGun(GunSlinger gunSlinger, Gun gun, GameObject bulletPrefab, GunSlingerGameRule gunSlingerGameRule)
    {
        switch (gun.modelName)
        {
        case Gun.ModelName.MyLittleGun:
            if (bulletPrefab.GetComponent <Bullet>())
            {
                float      power    = 1000;
                Quaternion rotation = Quaternion.Euler(0, 0, 270);
                if (gun.transform.rotation.eulerAngles.y != 0)
                {
                    power   *= -1;
                    rotation = Quaternion.Euler(0, 0, 90);
                }
                Bullet bullet = Bullet.Shoot(bulletPrefab, gun.transform.position, rotation, power);
                bullet.RuleManager.overridedGameRule = new ShotBulletGameRule(gunSlinger, gun, gunSlingerGameRule);
            }
            break;

        default:
            break;
        }
    }