Ejemplo n.º 1
0
 /// <summary>
 /// construct
 /// </summary>
 protected BattleUserData(UserTurretData turretData)
 {
     //砲台データ
     this.turretData = turretData;
     var batteryData = Masters.BatteryDB.FindById(turretData.batteryMasterId);
     var barrelData = Masters.BarrelDB.FindById(turretData.barrelMasterId);
     var bulletData = Masters.BulletDB.FindById(turretData.bulletMasterId);
     //砲台に付いてるギア一覧
     this.gears = this.turretData.GetGearMasterIds().Select(id => Masters.GearDB.FindById(id)).ToArray();
     //スキル効果追加
     this.skill = new SkillGroupManager();
     this.skill.AddRangeSkillGroup(gears.Select(x => x.skillGroupId));
     this.skill.AddSkillGroup(bulletData.skillGroupId);
     //シリーズスキル効果追加
     if (batteryData.seriesId == barrelData.seriesId && batteryData.seriesId == bulletData.seriesId)
     {
         var seriesData = Masters.TurretSerieseDB.FindById(batteryData.seriesId);
         var seriesSkillData = Masters.SerieseSkillDB.FindById(seriesData.seriesSkillId);
         this.skill.AddSkillGroup(seriesSkillData.skillGroupId);
     }
     //VIPスキル効果追加
     this.skill.AddRangeSkillGroup(Masters.VipBenefitDB
         .GetList()
         .Where(x => x.skillGroupId > 0 && x.vipLevel <= UserData.Get().vipLevel)
         .Select(x => x.skillGroupId)
     );
 }
Ejemplo n.º 2
0
 /// <summary>
 /// スクロールビュー要素クリック時
 /// </summary>
 private void OnClickScrollViewItem(CustomTurretScrollViewItem item)
 {
     this.focusedTurretData = item.turretData;
     this.scene.turretView.turretData.Set(this.focusedTurretData);
     this.scene.turretView.Reflesh();
     this.scene.scrollView.UpdateElement();
     this.scene.turretInfo.Reflesh(this.scene.turretView.turretData);
 }
Ejemplo n.º 3
0
 /// <summary>
 /// まとめてセット
 /// </summary>
 public void Set(UserTurretData obj)
 {
     this.serverId      = obj.serverId;
     this.settingNumber = obj.settingNumber;
     this.useFlg        = obj.useFlg;
     this.SetBatteryServerId(obj.batteryServerId);
     this.SetBarrelServerId(obj.barrelServerId);
     this.SetBulletServerId(obj.bulletServerId);
     this.SetAccessoryServerId(obj.accessoryServerId);
 }
Ejemplo n.º 4
0
    /// <summary>
    /// construct
    /// </summary>
    public MultiBattleUserData(UserTurretData turretData, long fvPoint, Master.BetData betData, MultiPlayApi.TMultiSoulBall soulBall)
        : base(turretData)
    {
        this.fvPoint = fvPoint;
        this.currentBetData = betData;

        if (soulBall != null)
        {
            this.ballNum = soulBall.ball % 9;
            this.soulNum = soulBall.soul % 9;
        }
    }
Ejemplo n.º 5
0
    /// <summary>
    /// construct
    /// </summary>
    public SingleBattleUserData(Master.SingleStageData stageData, UserTurretData turretData)
        : base(turretData)
    {
        this.maxHp =
        this.hp = (int)stageData.userHp;
        this.currentBetData = new Master.BetData{
            maxBet = stageData.bet,
            needFvPoint = stageData.needFvPoint,
        };

        //スキル効果による開戦時FVゲージの上昇
        float fvGaugeUp = this.skill.InitFvGaugeUp();
        this.fvPoint += (long)(this.currentBetData.needFvPoint * fvGaugeUp);
        this.fvPoint = (long)Mathf.Min(this.currentBetData.needFvPoint, this.fvPoint);
        //Debug.LogFormat("スキル効果によりFVゲージ{0}%上昇。{1}/{2}から開始。", fvGaugeUp * 100, this.fvPoint, this.currentBetData.needFvPoint);
    }
Ejemplo n.º 6
0
    /// <summary>
    /// 表示構築
    /// </summary>
    public void Set(UserTurretData data, bool isEquipped, bool isSelected, Action <CustomTurretScrollViewItem> onClick)
    {
        this.turretData            = data;
        this.turretBase.batteryKey = Masters.BatteryDB.FindById(this.turretData.batteryMasterId).key;
        this.turretBase.barrelKey  = Masters.BarrelDB.FindById(this.turretData.barrelMasterId).key;
        this.turretBase.bulletKey  = Masters.BulletDB.FindById(this.turretData.bulletMasterId).key;
        this.turretBase.Reflesh();

        //装備中マークON/OFF
        this.equippedMark.SetActive(isEquipped);

        //選択中マークON/OFF
        this.selectedMark.SetActive(isSelected);

        //クリック時処理登録
        this.onClick = onClick;
    }
Ejemplo n.º 7
0
        /// <summary>
        /// Start
        /// </summary>
        public override void Start()
        {
            this.scene.plusButton.SetActive(true);

            if (this.focusedTurretData == null)
            {
                this.focusedTurretData = UserData.Get().turretData.First(x => x.useFlg > 0);
            }

            //砲台ビューの更新
            this.scene.turretView.turretData.Set(this.focusedTurretData);
            this.scene.turretView.Reflesh();

            //砲台情報の更新
            this.scene.turretInfo.Reflesh(this.scene.turretView.turretData);

            //ボタンを表示 TODO.まだAPIがないので、アルファでは使用しない
            this.scene.partsChangeButton.gameObject.SetActive(true);
            this.scene.decideButton.gameObject.SetActive(true);

            this.scene.scrollView.Initialize(
                this.scene.turretScrollViewItemPrefab.gameObject,
                UserData.Get().turretData.Length,
                this.OnUpdateScrollViewItem
                );

            int focusIndex = Array.FindIndex(UserData.Get().turretData, (x) => x.serverId == this.focusedTurretData.serverId);

            this.scene.scrollView.SetFocus(focusIndex);

            // ログイン時の、tUtilityDataのutilityId修得
            this.scene.firstUtilityId = UserData.Get().tUtilityData.First(x => x.utilityType == (uint)UtilityType.MaxCannon).utilityId;

            this.scene.maxCannon            = Masters.CannonExpansionDB.FindById(this.scene.firstUtilityId).maxPossession;
            this.scene.defominatorText.text = this.scene.maxCannon.ToString();

            // TODO.Sceneの名前を比較してtrue、false判断
            this.scene.turretInfo.SetTurretInfo(true, false, true);
        }
Ejemplo n.º 8
0
    /// <summary>
    /// 表示更新
    /// </summary>
    public void Reflesh(UserTurretData data)
    {
        //ゲージ最大値設定
        var config                 = Masters.ConfigDB.FindById(1);
        var MAX_POWER              = config.maxBulletPower;
        var MAX_BULLET_SPEED       = config.maxBarrelSpeed;
        var MAX_FV_POINT_GET_VALUE = config.maxBatteryFvPoint;

        // マスターデータ
        var batteryData   = Masters.BatteryDB.FindById(data.batteryMasterId);
        var barrelData    = Masters.BarrelDB.FindById(data.barrelMasterId);
        var bulletData    = Masters.BulletDB.FindById(data.bulletMasterId);
        var accessoryData = Masters.AccessoriesDB.FindById(data.accessoryMasterId);
        var fvAttackData  = Masters.FvAttackDB.FindById(batteryData.fvAttackId);

        // 現在のパーツ
        var batteryPartsData = UserData.Get().batteryData.First(x => x.serverId == data.batteryServerId);
        var barrelPartsData  = UserData.Get().barrelData.First(x => x.serverId == data.barrelServerId);
        var bulletPartsData  = UserData.Get().bulletData.First(x => x.serverId == data.bulletServerId);

        // 装着中のギアを配列に合併
        var gearDatas = batteryPartsData.gearMasterIds
                        .Concat(barrelPartsData.gearMasterIds)
                        .Concat(bulletPartsData.gearMasterIds)
                        .Select(gearId => Masters.GearDB.FindById(gearId))
                        .ToArray();

        // 能力値別に合算
        var gearPower   = gearDatas.Select(x => (long)x.power).Sum();
        var gearSpeed   = gearDatas.Select(x => (long)x.speed).Sum();
        var gearFvPoint = gearDatas.Select(x => (long)x.fvPoint).Sum();

        // パーツ能力値デとギア能力値を合併
        uint power           = bulletData.power + (uint)gearPower;
        uint bulletSpeed     = barrelData.speed + (uint)gearSpeed;
        uint fvPointGetValue = batteryData.fvPoint + (uint)gearFvPoint;

        Debug.LogFormat("power : {0}, bulletSpeed : {1}, fvPointGetValue{2} : {2}", power, bulletSpeed, fvPointGetValue);

        var fvAttackIconSprite = AssetManager.FindHandle <Sprite>(SharkDefine.GetFvAttackTypeIconSpritePath((FvAttackType)fvAttackData.type)).asset as Sprite;
        var batterySprite      = AssetManager.FindHandle <Sprite>(SharkDefine.GetBatterySpritePath(batteryData.key)).asset as Sprite;
        var barrelSprite       = AssetManager.FindHandle <Sprite>(SharkDefine.GetBarrelSpritePath(barrelData.key)).asset as Sprite;
        var bulletSprite       = AssetManager.FindHandle <Sprite>(SharkDefine.GetBulletThumbnailPath(bulletData.key)).asset as Sprite;
        var accessorySprite    = AssetManager.FindHandle <Sprite>(SharkDefine.GetAccessoryThumbnailPath(accessoryData.key)).asset as Sprite;

        //攻撃力ゲージ設定
        //float p = (float)(power - CustomTurretScene.minBulletPower) / (MAX_POWER - CustomTurretScene.minBulletPower) + 0.2f;
        float p;

        if (power < MAX_POWER / 5)
        {
            p = 0.2f;
        }
        else
        {
            p = (float)power / MAX_POWER;
        }
        this.powerGauge.SetGaugeValue(Mathf.Clamp01(p));
        this.partsPowerGauge.SetGaugeValue(Mathf.Clamp01(p));

        //発射速度ゲージ設定
        //p = (float)(bulletSpeed - CustomTurretScene.minBarrelSpeed) / (MAX_BULLET_SPEED - CustomTurretScene.minBarrelSpeed) + 0.2f;
        if (bulletSpeed < MAX_BULLET_SPEED / 5)
        {
            p = 0.2f;
        }
        else
        {
            p = (float)bulletSpeed / MAX_BULLET_SPEED;
        }
        this.bulletSpeedGauge.SetGaugeValue(Mathf.Clamp01(p));
        this.partsBulletSpeedGauge.SetGaugeValue(Mathf.Clamp01(p));

        //FVポイント獲得値ゲージ設定
        //p = (float)(fvPointGetValue - CustomTurretScene.minBatteryFvPoint) / (MAX_FV_POINT_GET_VALUE - CustomTurretScene.minBatteryFvPoint) + 0.2f;
        if (fvPointGetValue < MAX_FV_POINT_GET_VALUE / 5)
        {
            p = 0.2f;
        }
        else
        {
            p = (float)fvPointGetValue / MAX_FV_POINT_GET_VALUE;
        }
        this.fvPointGetValueGauge.SetGaugeValue(Mathf.Clamp01(p));
        this.partsfvPointGetCalueGauge.SetGaugeValue(Mathf.Clamp01(p));

        //パーツページのFVアタック名、アイコン画像、説明文設定
        this.partsViewFvAttackNameText.text        = fvAttackData.name;
        this.partsViewFvAttackIconImage.sprite     = AssetManager.FindHandle <Sprite>(SharkDefine.GetFvAttackTypeIconSpritePath((FvAttackType)fvAttackData.type)).asset as Sprite;
        this.partsViewFvAttackDescriptionText.text = fvAttackData.description;

        //砲台ページのFVアタック名、アイコン画像、説明文設定
        this.turretViewFvAttackNameText.text        = fvAttackData.name;
        this.turretViewFvAttackIconImage.sprite     = AssetManager.FindHandle <Sprite>(SharkDefine.GetFvAttackTypeIconSpritePath((FvAttackType)fvAttackData.type)).asset as Sprite;
        this.turretViewFvAttackDescriptionText.text = fvAttackData.description;

        //セットスキル発動
        if (batteryData.seriesId == barrelData.seriesId && batteryData.seriesId == bulletData.seriesId)
        {
            var seriesData      = Masters.TurretSerieseDB.FindById(batteryData.seriesId);
            var seriesSkillData = Masters.SerieseSkillDB.FindById(seriesData.seriesSkillId);

            //パーツページのセットスキル名、説明文、アイコン画像設定
            this.partsViewSetSkillIconImage.enabled    = true;
            this.partsViewSetSkillIconImage.sprite     = AssetManager.FindHandle <Sprite>(SharkDefine.GetSeriesSkillIconSpritePath(seriesSkillData.key)).asset as Sprite;
            this.partsViewSetSkillNameText.text        = seriesSkillData.name;
            this.partsViewSetSkillDescriptionText.text = seriesSkillData.description;

            //砲台ページのセットスキル名、説明文、アイコン画像設定
            this.turretViewSetSkillIconImage.enabled    = true;
            this.turretViewSetSkillIconImage.sprite     = AssetManager.FindHandle <Sprite>(SharkDefine.GetSeriesSkillIconSpritePath(seriesSkillData.key)).asset as Sprite;
            this.turretViewSetSkillNameText.text        = seriesSkillData.name;
            this.turretViewSetSkillDescriptionText.text = seriesSkillData.description;
        }
        //セットスキル不発
        else
        {
            //パーツページのセットスキル名、説明文、アイコン画像非表示
            this.partsViewSetSkillIconImage.enabled    = false;
            this.partsViewSetSkillNameText.text        = null;
            this.partsViewSetSkillDescriptionText.text = null;

            //砲台ページのセットスキル名、説明文、アイコン画像非表示
            this.turretViewSetSkillIconImage.enabled    = false;
            this.turretViewSetSkillNameText.text        = null;
            this.turretViewSetSkillDescriptionText.text = null;
        }

        //パーツページ台座アイコン
        this.partsViewBatteryIcon.SetIconSprite(batterySprite);
        this.partsViewBatteryIcon.SetRank((Rank)batteryData.rarity);
        this.partsViewBatteryIcon.SetGearSlot(batteryPartsData);

        //パーツページ砲身アイコン
        this.partsViewBarrelIcon.SetIconSprite(barrelSprite);
        this.partsViewBarrelIcon.SetRank((Rank)barrelData.rarity);
        this.partsViewBarrelIcon.SetGearSlot(barrelPartsData);

        //パーツページ砲弾アイコン
        this.partsViewBulletIcon.SetIconSprite(bulletSprite);
        this.partsViewBulletIcon.SetRank((Rank)bulletData.rarity);
        this.partsViewBulletIcon.SetGearSlot(bulletPartsData);

        //パーツページアクセサリアイコン
        this.partsViewAccessoryIcon.SetIconSprite(accessorySprite);
        this.partsViewAccessoryIcon.SetRank((Rank)accessoryData.rarity);

        //砲台ページ台座アイコン
        this.turretViewBatteryIcon.SetIconSprite(batterySprite);
        this.turretViewBatteryIcon.SetRank((Rank)batteryData.rarity);
        this.turretViewBatteryIcon.SetGearSlot(batteryPartsData);

        //砲台ページ砲身アイコン
        this.turretViewBarrelIcon.SetIconSprite(barrelSprite);
        this.turretViewBarrelIcon.SetRank((Rank)barrelData.rarity);
        this.turretViewBarrelIcon.SetGearSlot(barrelPartsData);

        //砲台ページ砲弾アイコン
        this.turretViewBulletIcon.SetIconSprite(bulletSprite);
        this.turretViewBulletIcon.SetRank((Rank)bulletData.rarity);
        this.turretViewBulletIcon.SetGearSlot(bulletPartsData);

        //砲台ページアクセサリアイコン
        this.turretViewAccessoryIcon.SetIconSprite(accessorySprite);
        this.turretViewAccessoryIcon.SetRank((Rank)accessoryData.rarity);
    }