Skip to content

Commit

Permalink
Merge pull request TK11235#148 from entyu/v1.10.0b0
Browse files Browse the repository at this point in the history
V1.10.0b0
  • Loading branch information
entyu authored Jan 10, 2023
2 parents 3d176b5 + 8ddc4e6 commit bd109dd
Show file tree
Hide file tree
Showing 17 changed files with 687 additions and 134 deletions.
6 changes: 3 additions & 3 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "udonarium_lily",
"version": "1.09.1",
"version": "1.10.0b0",
"license": "MIT",
"scripts": {
"ng": "ng",
Expand Down
12 changes: 12 additions & 0 deletions src/app/class/chat-message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ import { ChatTab } from '@udonarium/chat-tab';
import { ChatTabList } from '@udonarium/chat-tab-list';
import { ObjectStore } from './core/synchronize-object/object-store';

import { GameCharacter } from '@udonarium/game-character';


export interface ChatMessageTargetContext {
text: string;
object: GameCharacter;
}

export interface ChatMessageContext {
identifier?: string;
tabIdentifier?: string;
Expand All @@ -24,8 +32,10 @@ export interface ChatMessageContext {
imagePos?: number;
messColor?: string;
sendFrom?: string; //lily

}


@SyncObject('chat')
export class ChatMessage extends ObjectNode implements ChatMessageContext {
@SyncVar() originFrom: string;
Expand All @@ -40,6 +50,8 @@ export class ChatMessage extends ObjectNode implements ChatMessageContext {
@SyncVar() sendFrom: string;
@SyncVar() fixd: boolean = false;

targetInfo: ChatMessageTargetContext[];

get tabIdentifier(): string { return this.parent.identifier; }
get text(): string { return <string>this.value }
set text(text: string) { this.value = text }
Expand Down
63 changes: 52 additions & 11 deletions src/app/class/chat-palette.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { ObjectContext } from './core/synchronize-object/game-object';
import { ObjectNode } from './core/synchronize-object/object-node';
import { StringUtil } from './core/system/util/string-util';
import { DataElement } from './data-element';
import { GameCharacter } from './game-character';

export interface PaletteLine {
palette: string;
Expand Down Expand Up @@ -128,9 +129,28 @@ export class ChatPalette extends ObjectNode {
this.isAnalized = false;
}

checkTargetCharactor(text: string): boolean{
let istarget = text.match(/[tT][{]\s*([^{}]+)\s*[}]/g) ? true : false;

if( text.match(/^[tT][:]([^:]+)/g) ){
istarget = true;
}
if( text.match(/\s[tT][:]([^:]+)/g) ){
istarget = true;
}
if( text.match(/^[tT][&]([^&]+)/g) ){
istarget = true;
}
if( text.match(/\s[tT][&]([^&]+)/g) ){
istarget = true;
}
console.log('複数対象用コマンド:'+istarget);
return istarget;
}

evaluate(line: PaletteLine, extendVariables?: DataElement): string
evaluate(line: string, extendVariables?: DataElement): string
evaluate(line: any, extendVariables?: DataElement): string {
evaluate(line: string, extendVariables?: DataElement,target?: GameCharacter): string
evaluate(line: any, extendVariables?: DataElement,target?: GameCharacter): string {
let evaluate: string = '';
if (typeof line === 'string') {
evaluate = line;
Expand All @@ -145,7 +165,8 @@ export class ChatPalette extends ObjectNode {
while (isContinue) {
loop++;
isContinue = false;
evaluate = evaluate.replace(/[{]\s*([^{}]+)\s*[}]/g, (match, name) => {
evaluate = evaluate.replace(/[tT]?[{]\s*([^{}]+)\s*[}]/g, (match, name) => {

name = StringUtil.toHalfWidth(name);
let useMax = false;
let namematch = name.match(/(.+)([\^]$)/);
Expand All @@ -154,14 +175,34 @@ export class ChatPalette extends ObjectNode {
useMax = true;
}
isContinue = true;
for (let variable of this.paletteVariables) {
if (variable.name == name) return variable.value;
}
if (extendVariables) {
let element = extendVariables.getFirstElementByName(name);
if (element) {
if(useMax && element.isNumberResource) return element.value + '';
return element.isNumberResource ? element.currentValue + '' : element.value + '';

if (match.match(/^[tT].*/)) {
for (let variable of target.chatPalette.paletteVariables) {
if (variable.name == name) return variable.value.replace(/[{]/g,'t{');;
}
if (target) {
let element = target.rootDataElement.getFirstElementByName(name);
if (element) {
let targetElementText =''
if (useMax && element.isNumberResource) targetElementText = element.value + '';
targetElementText = element.isNumberResource ? element.currentValue + '' : element.value + '';
if ( targetElementText.match(/[{]\s*([^{}]+)\s*[}]/g)) {
targetElementText = targetElementText.replace(/[{]/g,'t{');
}
return targetElementText;
}
}
}else{
for (let variable of this.paletteVariables) {
if (variable.name == name) return variable.value;
}

if (extendVariables) {
let element = extendVariables.getFirstElementByName(name);
if (element) {
if(useMax && element.isNumberResource) return element.value + '';
return element.isNumberResource ? element.currentValue + '' : element.value + '';
}
}
}
return '';
Expand Down
26 changes: 18 additions & 8 deletions src/app/class/chat-tab.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { ChatMessage, ChatMessageContext } from './chat-message';
import { ChatMessage, ChatMessageContext, ChatMessageTargetContext } from './chat-message';
import { SyncObject, SyncVar } from './core/synchronize-object/decorator';
import { ObjectNode } from './core/synchronize-object/object-node';
import { InnerXml, ObjectSerializer } from './core/synchronize-object/object-serializer';
Expand Down Expand Up @@ -82,7 +82,6 @@ export class ChatTab extends ObjectNode implements InnerXml {
if ( index >= 0 ){
this.imageIdentifierZpos.splice(index, 1);
this.imageIdentifierZpos.push( Number(toppos) );
console.log( 'imageIdentifierZpos = ' + this.imageIdentifierZpos );
}
}

Expand Down Expand Up @@ -116,19 +115,18 @@ export class ChatTab extends ObjectNode implements InnerXml {
}else{
// マウスクリック非表示を復帰する
this.imageDispFlag[child.imagePos] = true;
// console.log("立ち絵テスト3 this.imageDispFlag[child.imagePos]" + child.imagePos + " / "+this.imageDispFlag[child.imagePos] + ":");
}

EventSystem.trigger('MESSAGE_ADDED', { tabIdentifier: this.identifier, messageIdentifier: child.identifier });
}
}

addMessage(message: ChatMessageContext): ChatMessage {
addMessage(message: ChatMessageContext , messageTargetContext ? :ChatMessageTargetContext[] ): ChatMessage {
message.tabIdentifier = this.identifier;

let chat = new ChatMessage();
for (let key in message) {
console.log('addMessage:' + key);
// console.log('addMessage:' + key);
if (key === 'identifier') continue;
if (key === 'tabIdentifier') continue;

Expand Down Expand Up @@ -175,11 +173,23 @@ export class ChatTab extends ObjectNode implements InnerXml {
this.cutInLauncher.chatActivateCutIn( chat.text , message.to ); // カットイン末尾発動
}

EventSystem.trigger('SEND_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier });

let isContext = false;
if (messageTargetContext){
if (messageTargetContext.length >= 1){
isContext = true;
}
}
if(isContext){
for( let context of messageTargetContext){
EventSystem.trigger('SEND_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier, messageTrget: context });
}
}else{
EventSystem.trigger('SEND_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier, messageTrget: null });
}

EventSystem.trigger('DICE_TABLE_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier });

EventSystem.trigger('RESOURCE_EDIT_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier });
EventSystem.trigger('RESOURCE_EDIT_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier, messageTargetContext: messageTargetContext ? messageTargetContext : null});

// 2021年4月実装のえいぷりるコマンド判定
EventSystem.trigger('APRIL_MESSAGE', { tabIdentifier: this.identifier, messageIdentifier: chat.identifier });
Expand Down
Loading

0 comments on commit bd109dd

Please sign in to comment.