princess-synergy/www/js/plugins/JsScript207Set.js
2026-02-05 14:03:22 -06:00

357 lines
16 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//Copyright (c) 2018 蔦森くいな
//http://opensource.org/licenses/mit-license.php
//blog : http://paradre.com/
//Twitter: https://twitter.com/Kuina_T
/*:
* @plugindesc
* @author 蔦森くいな
*
* @help
*/
(function() {
Game_Event.prototype.pd_TE_resetPropaty = function() {
this.__pd_TE.touchTriggerType = 0;
this.__pd_TE.touchSwitchIndex = ['',''];
this.__pd_TE.Hash = {};
this.__pd_TE.triggerDisable = false;
this.__pd_TE.tag = [];
this.__pd_TE.ETE_TriggerType = 0;
this.__pd_TE.ETE_Tag = [];
this.__pd_TE.ETE_SwitchIndex = ['',''];
this.__pd_TE.EFE_TriggerType = 0;
this.__pd_TE.EFE_Tag = [];
this.__pd_TE.EFE_SwitchIndex = ['',''];
this.__pd_TE.EFE_exception = false;
this.__pd_TE.Touch_forceRun = false;
this.__pd_TE.lastTouchedEvent = null;
this.__pd_TE.ETR_TriggerType = 0;
this.__pd_TE.ETR_Num = [];
this.__pd_TE.ETR_SwitchIndex = ['',''];
};
var pd_TE_Game_Event_initialize = Game_Event.prototype.initialize;
Game_Event.prototype.initialize = function(mapId, eventId) {
this.__pd_TE = {};
this.pd_TE_resetPropaty();
pd_TE_Game_Event_initialize.call(this, mapId, eventId);
};
var pd_TE_Game_Map_setupEvents = Game_Map.prototype.setupEvents;
Game_Map.prototype.setupEvents = function() {
if($gameMap._pd_TE_EFE_Enable === true){
$gameMap._pd_TE_EFE_Enable = false;
}
pd_TE_Game_Map_setupEvents.call(this);
};
var pd_TE_Game_Event_clearPageSettings = Game_Event.prototype.clearPageSettings;
Game_Event.prototype.clearPageSettings = function() {
pd_TE_Game_Event_clearPageSettings.call(this);
this.pd_TE_resetPropaty();
};
var pd_TE_Game_Event_setupPageSettings = Game_Event.prototype.setupPageSettings;
Game_Event.prototype.setupPageSettings = function() {
pd_TE_Game_Event_setupPageSettings.call(this);
this.pd_TE_resetPropaty();
var Command_List = this.list();
var index = 0;
while(Command_List[index].code === 108 || Command_List[index].code === 408){
var command = Command_List[index].parameters[0].toLowerCase().replace(/ /g,' ').split(' ');
for(var i = 0, len = command.length; i < len; i++){
var param = command[i].replace(/:/g,',').replace(//g,',').split(',');
var header = param[0].substr(0,1);
if(header === '#') param[0] = param[0].substr(1);
switch(param[0]){
case 'タッチ':
case 'touch':
if(param.length > 1){
if(header === '#'){
this.__pd_TE.touchTriggerType = 2;
}else{
this.__pd_TE.touchTriggerType = 1;
}
this.__pd_TE.touchSwitchIndex = this.pd_TE_CheckSwitchIndex(param[1]);
}else{
this.__pd_TE.touchTriggerType = 1;
}
break;
case 'バルーン':
if (param.length > 1) {
this.TCkBlnNo = Number(param[1]);
}
break;
case '距離':
if (param.length > 1) {
this.TCkKyori = Number(param[1]);
}
break;
case 'タップ':
case 'tap':
if(param.length > 1){
if(header === '#'){
this.__pd_TE.touchTriggerType = 4;
}else{
this.__pd_TE.touchTriggerType = 3;
}
this.__pd_TE.touchSwitchIndex = this.pd_TE_CheckSwitchIndex(param[1]);
}else{
this.__pd_TE.touchTriggerType = 3;
}
break;
case 'タグ':
case 'tag':
if(param.length > 1){
for(var j = 1, len2 = param.length; j < len2; j++){
this.__pd_TE.tag[j-1] = param[j];
}
}else{
throw new Error('TriggerExtension Plugin : タグに名前が設定されていません');
}
break;
case 'トリガー無効':
case 'triggerdisable':
this.__pd_TE.triggerDisable = true;
break;
case 'イベントに接触':
case 'toevent':
if(param.length > 1){
if(header === '#'){
this.__pd_TE.ETE_TriggerType = 2;
}else{
this.__pd_TE.ETE_TriggerType = 1;
}
this.__pd_TE.ETE_SwitchIndex = this.pd_TE_CheckSwitchIndex(param[1]);
if(param.length > 2){
for(var j = 2, len2 = param.length; j < len2; j++){
this.__pd_TE.ETE_Tag[j-2] = param[j];
}
}else{
this.__pd_TE.ETE_Tag[0] = '';
}
}else{
this.__pd_TE.ETE_Tag[0] = '';
}
break;
case 'イベントが接触':
case 'fromevent':
if(param.length > 1){
if(header === '#'){
this.__pd_TE.EFE_TriggerType = 2;
}else{
this.__pd_TE.EFE_TriggerType = 1;
}
this.__pd_TE.EFE_SwitchIndex = this.pd_TE_CheckSwitchIndex(param[1]);
$gameMap._pd_TE_EFE_Enable = true;
if(param.length > 2){
for(var j = 2, len2 = param.length; j < len2; j++){
this.__pd_TE.EFE_Tag[j-2] = param[j];
}
}else{
this.__pd_TE.EFE_Tag[0] = '';
}
}else{
this.__pd_TE.EFE_Tag[0] = '';
$gameMap._pd_TE_EFE_Enable = true;
}
break;
case 'リージョンに接触':
case 'toregion':
if(param.length > 1){
if(header === '#'){
this.__pd_TE.ETR_TriggerType = 2;
}else{
this.__pd_TE.ETR_TriggerType = 1;
}
this.__pd_TE.ETR_SwitchIndex = this.pd_TE_CheckSwitchIndex(param[1]);
if(param.length > 2){
for(var j = 2, len2 = param.length; j < len2; j++){
this.__pd_TE.ETR_Num[j-2] = param[j];
}
}else{
this.__pd_TE.ETR_Num[0] = '';
}
}else{
this.__pd_TE.ETR_Num[0] = '';
}
break;
case '除外':
case 'exception':
this.__pd_TE.EFE_exception = true;
break;
case '強制実行':
case 'forcerun':
this.__pd_TE.Touch_forceRun = true;
break;
}
}
index = index + 1;
}
};
Game_Event.prototype.pd_TE_CheckSwitchIndex = function(switchIndex) {
if(isNaN(switchIndex)){
if(switchIndex === ''){
return ['', ''];
}
else if(switchIndex.contains('=')){
switchIndex = switchIndex.split('=');
if(switchIndex.length > 2){
throw new Error('TriggerExtension Plugin : 「=」の数が多すぎます');
}else{
return switchIndex;
}
}
else if(switchIndex === 'a' || switchIndex === 'b' || switchIndex === 'c' || switchIndex === 'd'){
return ['SelfSwitch', switchIndex.toUpperCase()];
}else{
throw new Error('TriggerExtension Plugin : セルフスイッチに指定できる文字はA,B,C,Dだけです : ['+switchIndex.toUpperCase()+']');
}
}else{
return ['Switch', switchIndex];
}
};
var pd_TE_Game_Event_update = Game_Event.prototype.update;
Game_Event.prototype.update = function() {
pd_TE_Game_Event_update.call(this);
if (!$gameMap.isEventRunning()) {
if (this.pd_TE_CheckTouchEvent()) {
this.pd_TE_SetSwitchIndex(this.__pd_TE.touchSwitchIndex);
if (this.__pd_TE.touchTriggerType === 1 || this.__pd_TE.touchTriggerType === 3) {
this.start('pd_TE_enable');
this.unlock(false);
}
}
}
};
Game_Event.prototype.pd_TE_CheckTouchEvent = function() {
if(this.__pd_TE.touchTriggerType >= 3){
if (TouchInput.isTriggered()) {
if($gameTemp._pd_TE_realTouchMapX >= this._realX && $gameTemp._pd_TE_realTouchMapX < this._realX + 1 &&
$gameTemp._pd_TE_realTouchMapY >= this._realY && $gameTemp._pd_TE_realTouchMapY < this._realY + 1){
$gameTemp._pd_TE_touchTriggerTime = Date.now();
}
}else if(TouchInput.isReleased() && Date.now() - $gameTemp._pd_TE_touchTriggerTime <= 500){
if($gameTemp._pd_TE_realTouchMapX >= this._realX && $gameTemp._pd_TE_realTouchMapX < this._realX + 1 &&
$gameTemp._pd_TE_realTouchMapY >= this._realY && $gameTemp._pd_TE_realTouchMapY < this._realY + 1){
$gameTemp._pd_TE_touchTriggerTime = 0;
return true;
}
}
}
else if(this.__pd_TE.touchTriggerType >= 1){
if (TouchInput.isTriggered()) {
if($gameTemp._pd_TE_realTouchMapX >= this._realX && $gameTemp._pd_TE_realTouchMapX < this._realX + 1 &&
$gameTemp._pd_TE_realTouchMapY >= this._realY && $gameTemp._pd_TE_realTouchMapY < this._realY + 1){
return true;
}
}
}
return false;
};
var pd_TE_Game_Event_start = Game_Event.prototype.start;
Game_Event.prototype.start = function() {
if(this.__pd_TE.triggerDisable && arguments[0] != 'pd_TE_enable'){
return;
}
pd_TE_Game_Event_start.call(this);
};
var pd_TE_Game_Event_moveStraight = Game_Event.prototype.moveStraight;
Game_Event.prototype.moveStraight = function(d) {
var _pd_TE_x = $gameMap.roundXWithDirection(this._x, d);
var _pd_TE_y = $gameMap.roundYWithDirection(this._y, d);
pd_TE_Game_Event_moveStraight.call(this, d);
if(this.__pd_TE.ETE_Tag.length >= 1 ||
($gameMap._pd_TE_EFE_Enable === true && this.__pd_TE.EFE_exception === false)){
$gameMap.eventsXy(_pd_TE_x, _pd_TE_y).forEach(function(event) {
if(event != this){
if (this.__pd_TE.ETE_Tag.length >= 1 && (this.__pd_TE.ETE_Tag[0] === '' || this.pd_TE_CheckTag(this.__pd_TE.ETE_Tag, event.__pd_TE.tag))) {
this.pd_TE_EventTouchEvent_Start(this, this.__pd_TE.ETE_SwitchIndex, event, this.__pd_TE.ETE_TriggerType);
}
else if($gameMap._pd_TE_EFE_Enable === true && event.__pd_TE.EFE_Tag.length >= 1 && this.__pd_TE.EFE_exception === false && (event.__pd_TE.EFE_Tag[0] === '' || this.pd_TE_CheckTag(this.__pd_TE.tag, event.__pd_TE.EFE_Tag))){
this.pd_TE_EventTouchEvent_Start(event, event.__pd_TE.EFE_SwitchIndex, this, event.__pd_TE.EFE_TriggerType);
}
}
} , this);
}
if (this.__pd_TE.ETR_Num.length >= 1 && (!$gameMap.isEventRunning() || this.__pd_TE.Touch_forceRun === true) && this.pd_TE_CheckRegionId(this.__pd_TE.ETR_Num, _pd_TE_x, _pd_TE_y)) {
if (!this.isJumping()) {
this.pd_TE_SetSwitchIndex(this.__pd_TE.ETR_SwitchIndex);
if(this.__pd_TE.ETR_TriggerType === 1){
this.start('pd_TE_enable');
this.unlock(false);
}
}
}
};
Game_Event.prototype.pd_TE_CheckTag = function(tagList1, tagList2) {
for(var i = 0, len = tagList1.length; i < len; i++){
for(var j = 0, len2 = tagList2.length; j < len2; j++){
if(tagList1[i] === tagList2[j]) return true;
}
}
return false;
};
Game_Event.prototype.pd_TE_CheckRegionId = function(regionList, x, y) {
var reg = $gameMap.regionId(x, y);
if(regionList[0] === ''){
if(reg >= 1) return true;
}else{
for(var i = 0, len = regionList.length; i < len; i++){
if(regionList[i] == reg) return true;
}
}
return false;
};
Game_Event.prototype.pd_TE_EventTouchEvent_Start = function(obj, indexVar, touchEvent, triggerType) {
if (!$gameMap.isEventRunning() || obj.__pd_TE.Touch_forceRun === true) {
if (!obj.isJumping()) {
obj.__pd_TE.lastTouchedEvent = touchEvent;
obj.pd_TE_SetSwitchIndex(indexVar);
if(triggerType === 1){
obj.start('pd_TE_enable');
obj.unlock(false);
}
}
}
};
Game_Event.prototype.pd_TE_SetSwitchIndex = function(indexVar) {
if(indexVar[0] === ''){
}
else if(indexVar[0] === 'Switch'){
$gameSwitches.setValue(indexVar[1], true);
}
else if(indexVar[0] === 'SelfSwitch'){
$gameSelfSwitches.setValue([this._mapId, this.eventId(), indexVar[1]], true);
}
else if(indexVar[0].substr(0,1) === 'v'){
if(isNaN(indexVar[1])){
$gameVariables.setValue(parseInt(indexVar[0].substr(1)), indexVar[1]);
}else{
$gameVariables.setValue(parseInt(indexVar[0].substr(1)), parseInt(indexVar[1]));
}
}
else{
this.__pd_TE.Hash[indexVar[0]] = indexVar[1];
}
}
var pd_TE_Game_Temp_initialize = Game_Temp.prototype.initialize;
Game_Temp.prototype.initialize = function() {
pd_TE_Game_Temp_initialize.call(this);
this._pd_TE_realTouchMapX = null;
this._pd_TE_realTouchMapY = null;
this._pd_TE_touchTriggerTime = 0;
};
var pd_TE_Game_Map_initialize = Game_Map.prototype.initialize;
Game_Map.prototype.initialize = function() {
pd_TE_Game_Map_initialize.call(this);
this._pd_TE_EFE_Enable = false;
};
var pd_TE_Scene_Map_update = Scene_Map.prototype.update;
Scene_Map.prototype.update = function() {
if (TouchInput.isPressed()) {
$gameTemp._pd_TE_realTouchMapX = ($gameMap._displayX * $gameMap.tileWidth() + TouchInput.x) / $gameMap.tileWidth();
$gameTemp._pd_TE_realTouchMapY = ($gameMap._displayY * $gameMap.tileHeight() + TouchInput.y) / $gameMap.tileHeight();
}
pd_TE_Scene_Map_update.call(this);
if(TouchInput.isReleased()){
$gameTemp._pd_TE_realTouchMapX = null;
$gameTemp._pd_TE_realTouchMapY = null;
}
};
})();