var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { if (typeof b !== "function" && b !== null) throw new TypeError( "Class extends value " + String(b) + " is not a constructor or null" ); extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : ((__.prototype = b.prototype), new __()); }; })(); /*:ja * @target MZ * @author ル * * @command gacha * * @command decideGachaHalo * @text ガチャ背景IDを変数78番に代入 * * @command showGachaResult * @text ガチャリザルト表示 * @des ガチャリザルト表示 * @arg battleActorId * @type number * @text battleActorId * @desc battleActorId * * @command showGachaResultList * @text ガチャリザルト5連表示 * @des ガチャリザルト5連表示 * * @command showGachaResultCharacter * @text ガチャリザルトキャラ表示 * @des ガチャリザルトキャラ表示 * * @command hideGachaResult * @text ガチャリザルト非表示 * @des ガチャリザルト非表示 * * @command joinActor * @text 怪人を追加 * @des 怪人を追加 * @arg actorId * @type number * @text actorId * @desc actorId * @arg level * @type number * @text level * @desc level * * @command showGachaRate * @text ガチャ確率表示 * @des ガチャ確率表示 * * @command hideGachaRate * @text ガチャ確率消す * @des ガチャ確率消す * * @command getGachaTicket * @text ガチャチケットを獲得 * @des ガチャチケットを獲得 * * @command showMonsterBonus * @text 怪人ボーナステキスト表示 * * @command hideMonsterBonus * @text 怪人ボーナステキスト非表示 */ var KAIJIN_ACTOR_ID_VAR = 64; var Nore; (function (Nore) { var pluginName = "Nore_Gacha"; PluginManager.registerCommand(pluginName, "decideGachaHalo", function (args) { if ($gameSwitches.value(19)) { // 5連 var list = $gameTemp.lastJoinBattleActorIdList; var varId = 76; for (var _i = 0, list_1 = list; _i < list_1.length; _i++) { var battleActorId = list_1[_i]; var actor = $slg.formation().findBattleActor(battleActorId); if (!actor) { return; } if (actor.element() == MonsterElement.flame) { $gameVariables.setValue(varId, 2); } if (actor.element() == MonsterElement.water) { $gameVariables.setValue(varId, 1); } if (actor.element() == MonsterElement.wood) { $gameVariables.setValue(varId, 3); } varId++; } } else { var battleActorId = $gameTemp.lastJoinBattleActorId; var actor = $slg.formation().findBattleActor(battleActorId); if (!actor) { return; } var varId = 78; if (actor.element() == MonsterElement.flame) { $gameVariables.setValue(varId, 2); } if (actor.element() == MonsterElement.water) { $gameVariables.setValue(varId, 1); } if (actor.element() == MonsterElement.wood) { $gameVariables.setValue(varId, 3); } } }); PluginManager.registerCommand( pluginName, "showGachaResultList", function (args) { var list = $gameTemp.lastJoinBattleActorIdList; var newList = $gameTemp.lastJoinBattleActorNewList; SceneManager._scene.showGachaResultList(list, newList); } ); PluginManager.registerCommand(pluginName, "showGachaResult", function (args) { var battleActorId = parseInt(args.battleActorId); var isNew = false; if (isNaN(battleActorId) || battleActorId <= 0) { battleActorId = $gameTemp.lastJoinBattleActorId; isNew = $gameTemp.lastJoinBattleActorNew; } SceneManager._scene.showGachaResult(battleActorId, isNew); }); PluginManager.registerCommand( pluginName, "showGachaResultCharacter", function (args) { var battleActorId = $gameTemp.lastJoinBattleActorId; var actor = $slg.formation().findBattleActor(battleActorId); if (!actor) { console.error(battleActorId + "のキャラが存在しません"); return; } $gameVariables.setValue(KAIJIN_ACTOR_ID_VAR, actor.actorId()); } ); PluginManager.registerCommand(pluginName, "hideGachaResult", function (args) { SceneManager._scene.hideGachaResult(); }); PluginManager.registerCommand(pluginName, "joinActor", function (args) { var actorId = parseInt(args.actorId); var level = parseInt(args.level); var battleActorId = $slg.formation().addMember(actorId, level); $gameTemp.lastJoinBattleActorId = battleActorId; }); PluginManager.registerCommand(pluginName, "showGachaRate", function (args) { var rareList = new Gacha().rareRate(); SceneManager._scene.showGachaRate(rareList); }); PluginManager.registerCommand(pluginName, "hideGachaRate", function (args) { SceneManager._scene.hideGachaRate(); }); PluginManager.registerCommand(pluginName, "getGachaTicket", function (args) { $gameSwitches.setValue(339, false); $gameSwitches.setValue(353, false); var actorId = $slg.formation().selectRandomMonster(); p("ガチャチケ獲得:" + $gameActors.actor(actorId).name()); var t = new GachaTicket(actorId); $gameParty.addGachaTicket(t); }); PluginManager.registerCommand( pluginName, "showMonsterBonus", function (args) { var types = [ FriendshipBonusType.atkFlame, FriendshipBonusType.atkWater, FriendshipBonusType.atkWood, FriendshipBonusType.hpFlame, FriendshipBonusType.hpWater, FriendshipBonusType.hpWood, ]; for (var _i = 0, types_1 = types; _i < types_1.length; _i++) { var type = types_1[_i]; var bonus = $gameParty.friendshipBonus(type); if (bonus) { $gameSwitches.setValue(20, true); SceneManager._scene.showMonsterBonus(); return; } } } ); PluginManager.registerCommand( pluginName, "hideMonsterBonus", function (args) { SceneManager._scene.hideMonsterBonus(); } ); var Sprite_GachaResult = /** @class */ (function (_super) { __extends(Sprite_GachaResult, _super); function Sprite_GachaResult(actor, isNew) { var _this = _super.call(this) || this; _this.x = Graphics.width / 2 - 100; _this.y = 236; var back = _this.getSprite(0, 0, 240, 230); back.y = 160; _this.addChild(back); var contents = new Sprite_GachaResultContents(actor); _this.addChild(contents); if (isNew) { var x = 0; switch (actor.rare()) { case MonsterRare.rare: x = 60; break; case MonsterRare.sr: x = 120; break; case MonsterRare.ssr: x = 180; break; } var newSprite = _this.getSprite(x, 230, 60, 30); newSprite.x = 79; newSprite.y = 0; _this.addChild(newSprite); } return _this; } Sprite_GachaResult.prototype.getSprite = function (x, y, w, h) { var baseTexture = Nore.getSystemBaseTexture("gacha"); var r = new Rectangle(x, y, w, h); var texture = new PIXI.Texture(baseTexture, r); var s = new PIXI.Sprite(texture); return s; }; return Sprite_GachaResult; })(Sprite); Nore.Sprite_GachaResult = Sprite_GachaResult; var Sprite_GachaResultContents = /** @class */ (function (_super) { __extends(Sprite_GachaResultContents, _super); function Sprite_GachaResultContents(actor) { var _this = _super.call(this) || this; _this.bitmap = new Bitmap(300, 400); _this._actor = actor; _this.refresh(); return _this; } Sprite_GachaResultContents.prototype.refresh = function () { this.bitmap.clear(); this.bitmap.outlineWidth = 5; var yy = 170; this.bitmap.textColor = ColorManager.normalColor(); //this.bitmap.fillRect(0, yy, 200, 270, '#00000088'); var actor = this._actor; this.bitmap.fontSize = 18; var frameX = 13; var frameY = 13; if (actor.rare() > 0) { var sprite = getFrameSprite(actor.rare(), actor.element()); sprite.x = 50 + frameX; sprite.y = 16 + frameY; this.addChild(sprite); } this.drawRare(actor, yy); //this.bitmap.drawText(this.rareText(actor.rare()), 10, 0 + yy, 200, 40, 'left'); this.bitmap.drawText(actor.name(), 50, yy - 4, 160, 40, "center"); this.drawParam(0, "HP", this._actor.mhp(), yy); this.drawParam(1, "ATK", this._actor.atk(), yy); this.drawParam(2, TextManager.interval, this._actor.agi(), yy); this.drawSkill(actor.learnings(), yy); var u = new BattleUnitDir2(actor, false); var s = new Sprite_SlotUnit(u, new Rectangle(82, 100, 100, 100)); this.addChild(s); }; Sprite_GachaResultContents.prototype.drawRare = function (actor, y) { var x = 30; if (actor.rare() == MonsterRare.sr) { x -= 10; } if (actor.rare() == MonsterRare.ssr) { x -= 12; } this.drawIcon(this.rareIcon(actor.rare()), x, y); }; Sprite_GachaResultContents.prototype.drawParam = function ( index, title, param, yyy ) { var xx = 20; var yy = 40 + index * 33 + yyy; this.bitmap.fontSize = 22; // this.bitmap.drawText(title, xx, yy, 100, 30); this.bitmap.drawText(param + "", xx, yy, 150, 30, "right"); }; Sprite_GachaResultContents.prototype.rareIcon = function (rare) { switch (rare) { case MonsterRare.common: return Icon.n; case MonsterRare.rare: return Icon.r; case MonsterRare.sr: return Icon.sr; case MonsterRare.ssr: return Icon.ssr; } }; Sprite_GachaResultContents.prototype.drawSkill = function (learnings, yyy) { if (learnings.length == 0) { return; } var learning = learnings[0]; var skill = $dataSkills[learning.skillId]; var xx = 30; this.bitmap.fontSize = 18; this.bitmap.textColor = ColorManager.normalColor(); this.bitmap.drawText( this.skillName(skill), xx, 135 + yyy + 46, 140, 30, "right" ); }; Sprite_GachaResultContents.prototype.skillName = function (skill) { if (ConfigManager.language == "en") { if (skill.meta["nameEn"]) { return skill.meta["nameEn"]; } } return skill.name; }; return Sprite_GachaResultContents; })(Sprite); Nore.Sprite_GachaResultContents = Sprite_GachaResultContents; var Sprite_GachaResult5Ren = /** @class */ (function (_super) { __extends(Sprite_GachaResult5Ren, _super); function Sprite_GachaResult5Ren(actor, isNew, index) { var _this = _super.call(this) || this; var point = _this.positionByIndex(index); _this.x = point.x; _this.y = point.y; _this.bitmap = new Bitmap(300, 300); _this._actor = actor; _this._isNew = isNew; _this.refresh(); return _this; } Sprite_GachaResult5Ren.prototype.positionByIndex = function (index) { switch (index) { case 0: return new Point(Graphics.width / 2 - 100 - 200, 236); case 1: return new Point(Graphics.width / 2 - 100 - 100, 286); case 2: return new Point(Graphics.width / 2 - 100, 236); case 3: return new Point(Graphics.width / 2 - 100 + 100, 286); case 4: return new Point(Graphics.width / 2 - 100 + 200, 236); } return new Point(0, 0); }; Sprite_GachaResult5Ren.prototype.refresh = function () { this.bitmap.clear(); var actor = this._actor; if (this._isNew) { this.drawNew(actor.rare()); } this.bitmap.fontSize = 20; var frameX = 13; var frameY = 13; if (actor.rare() > 0) { var sprite = getFrameSprite(actor.rare(), actor.element()); sprite.x = 50 + frameX; sprite.y = 16 + frameY; this.addChild(sprite); } var u = new BattleUnitDir2(actor, false); var s = new Sprite_SlotUnit(u, new Rectangle(82, 100, 100, 100)); this.addChild(s); }; Sprite_GachaResult5Ren.prototype.drawNew = function (rare) { var x = 0; switch (rare) { case MonsterRare.rare: x = 60; break; case MonsterRare.sr: x = 120; break; case MonsterRare.ssr: x = 180; break; } var newSprite = this.getSprite(x, 230, 60, 30); newSprite.x = 79; newSprite.y = 0; this.addChild(newSprite); }; Sprite_GachaResult5Ren.prototype.getSprite = function (x, y, w, h) { var baseTexture = Nore.getSystemBaseTexture("gacha"); var r = new Rectangle(x, y, w, h); var texture = new PIXI.Texture(baseTexture, r); var s = new PIXI.Sprite(texture); return s; }; return Sprite_GachaResult5Ren; })(Sprite); Nore.Sprite_GachaResult5Ren = Sprite_GachaResult5Ren; var Sprite_GachaRate = /** @class */ (function (_super) { __extends(Sprite_GachaRate, _super); function Sprite_GachaRate(rate) { var _this = _super.call(this) || this; _this.x = Graphics.width / 2 + 66 + $gameVariables.value(9); _this.y = 256; var back = _this.getSprite(238, 0, 205, 200); _this.addChild(back); var y = 200; if (ConfigManager.language == "en") { y += 30; } var text = _this.getSprite(238, y, 200, 30); text.y = 8; _this.addChild(text); _this._contents = new Sprite_GachaRateContents(rate); _this.addChild(_this._contents); return _this; } Sprite_GachaRate.prototype.getSprite = function (x, y, w, h) { var baseTexture = Nore.getSystemBaseTexture("gacha"); var r = new Rectangle(x, y, w, h); var texture = new PIXI.Texture(baseTexture, r); var s = new PIXI.Sprite(texture); return s; }; return Sprite_GachaRate; })(Sprite); Nore.Sprite_GachaRate = Sprite_GachaRate; var Sprite_GachaRateContents = /** @class */ (function (_super) { __extends(Sprite_GachaRateContents, _super); function Sprite_GachaRateContents(rate) { var _this = _super.call(this) || this; _this.bitmap = new Bitmap(200, 200); _this._rateList = rate; _this.refresh(); return _this; } Sprite_GachaRateContents.prototype.refresh = function () { this.bitmap.clear(); this.bitmap.fontSize = 22; this.bitmap.outlineWidth = 5; //this.bitmap.fillRect(0, yy, 196, 180, '#00000088'); var yy = 46; var xx = 20; for (var i = 0; i < this._rateList.length; i++) { var text = this.rareText(i + 1); var rate = this._rateList[i]; //this.bitmap.drawText(text, xx, yy, 100, 30); this.bitmap.drawText(rate + "%", xx, yy, 140, 30, "right"); yy += 34; } }; Sprite_GachaRateContents.prototype.rareText = function (rare) { switch (rare) { case MonsterRare.common: return "N"; case MonsterRare.rare: return "R"; case MonsterRare.sr: return "SR"; case MonsterRare.ssr: return "SSR"; } }; return Sprite_GachaRateContents; })(Sprite); Nore.Sprite_GachaRateContents = Sprite_GachaRateContents; var BomusItem = /** @class */ (function () { function BomusItem(_type, _value) { this._type = _type; this._value = _value; } BomusItem.prototype.type = function () { return this._type; }; BomusItem.prototype.value = function () { return this._value; }; return BomusItem; })(); var Sprite_MonsterBonus = /** @class */ (function (_super) { __extends(Sprite_MonsterBonus, _super); function Sprite_MonsterBonus(h) { var _this = this; var r = new Rectangle(300, 200, 360, 100); _this = _super.call(this, r) || this; _this.makeItems(); _this.height = _this._items.length * _this.itemHeight() + 24; _this.createContents(); _this.refresh(); return _this; } Sprite_MonsterBonus.prototype.makeItems = function () { this._items = []; var types = [ FriendshipBonusType.atkFlame, FriendshipBonusType.atkWater, FriendshipBonusType.atkWood, FriendshipBonusType.hpFlame, FriendshipBonusType.hpWater, FriendshipBonusType.hpWood, ]; for (var _i = 0, types_2 = types; _i < types_2.length; _i++) { var type = types_2[_i]; var bonus = $gameParty.friendshipBonus(type) * $gameParty.friendshipBonusRate(type); if (bonus) { this._items.push(new BomusItem(type, bonus)); } } }; Sprite_MonsterBonus.prototype.maxItems = function () { if (this._items) { return this._items.length; } return 0; }; Sprite_MonsterBonus.prototype.maxCols = function () { return 1; }; Sprite_MonsterBonus.prototype.resetFontSettings = function () { _super.prototype.resetFontSettings.call(this); this.contents.fontSize = 24; }; Sprite_MonsterBonus.prototype.drawItem = function (index) { var item = this._items[index]; var rect = this.itemRect(index); var text = this.makeBonusLabel(item.type()); this.drawTextEx(text, rect.x, rect.y, rect.width); this.drawText( "+ " + item.value(), rect.x, rect.y, rect.width - 20, "right" ); }; Sprite_MonsterBonus.prototype.makeBonusLabel = function (type) { switch (type) { case FriendshipBonusType.atkFlame: return TextManager.atkFlame2; case FriendshipBonusType.atkWater: return TextManager.atkWater2; case FriendshipBonusType.atkWood: return TextManager.atkWood2; case FriendshipBonusType.hpFlame: return TextManager.hpFlame2; case FriendshipBonusType.hpWater: return TextManager.hpWater2; case FriendshipBonusType.hpWood: return TextManager.hpWood2; } }; Sprite_MonsterBonus.prototype.itemHeight = function () { return 40; }; return Sprite_MonsterBonus; })(Window_Selectable); Nore.Sprite_MonsterBonus = Sprite_MonsterBonus; })(Nore || (Nore = {})); var Gacha = /** @class */ (function () { function Gacha() {} Gacha.prototype.decideRare = function () { var rareRate = this.rareRate(); var dice = Math.randomInt(100); var remain = dice; for (var rare = 0; rare < rareRate.length; rare++) { var value = rareRate[rare]; if (remain <= value) { return rare + 1; } remain -= value; } console.error("不正なレア度です:" + dice); console.error(rareRate); return MonsterRare.common; }; Gacha.prototype.rareRate = function () { if ($gameSwitches.value(339)) { // SRボーナスガチャ return [0, 0, 100, 0]; } if ($gameSwitches.value(353)) { // SSRボーナスガチャ return [0, 0, 0, 100]; } if ($slg.facilityInfo().hasFacility(77)) { // 研究所LV5 return [23, 31, 28, 18]; } if ($slg.facilityInfo().hasFacility(74)) { // 研究所LV4 return [34, 33, 23, 10]; } if ($slg.facilityInfo().hasFacility(73)) { // 研究所LV3 return [42, 33, 20, 5]; } if ($slg.facilityInfo().hasFacility(72)) { // 研究所LV2 return [55, 35, 10, 0]; } if ($slg.facilityInfo().hasFacility(71)) { // 研究所LV1 return [64, 33, 3, 0]; } return [80, 20, 0, 0]; }; return Gacha; })(); function isKaijinEvent(event) { if (!event) { return false; } if (!event.event()) { return false; } return event.event().meta["kaijin"] != null; } var Sprite_Kaijin = /** @class */ (function (_super) { __extends(Sprite_Kaijin, _super); function Sprite_Kaijin(event) { return _super.call(this, event) || this; } Sprite_Kaijin.prototype.updateBitmap = function () { if (this.isImageChanged()) { this._tilesetId = $gameMap.tilesetId(); this._tileId = this._character.tileId(); this._characterName = this.characterName(); this._characterIndex = this.characterIndex(); if (this._tileId > 0) { this.setTileBitmap(); } else { this.setCharacterBitmap(); } } }; Sprite_Kaijin.prototype.characterName = function () { var id = $gameVariables.value(KAIJIN_ACTOR_ID_VAR); if (id <= 0) { return ""; } var actor = $gameActors.actor(id); return actor.characterName(); }; Sprite_Kaijin.prototype.characterIndex = function () { var id = $gameVariables.value(KAIJIN_ACTOR_ID_VAR); if (id <= 0) { return 0; } var actor = $gameActors.actor(id); return actor.characterIndex(); }; Sprite_Kaijin.prototype.isImageChanged = function () { return ( this._characterName !== this.characterName() || this._characterIndex !== this.characterIndex() ); }; Sprite_Kaijin.prototype.characterBlockX = function () { if (this._isBigCharacter) { return 0; } else { var index = this.characterIndex(); return (index % 4) * 3; } }; Sprite_Kaijin.prototype.characterBlockY = function () { var index = this.characterIndex(); return Math.floor(index / 4) * 4; }; Sprite_Kaijin.prototype.characterPatternX = function () { return 1; }; return Sprite_Kaijin; })(Sprite_Character);