Commit 5e1181a8 authored by 18손재민's avatar 18손재민

스킨 변경 기능 추가, 이제 내 스킨이 다른 사람에게도 보임

parent 8cf35085
......@@ -362,6 +362,7 @@ class Player
this.killCount = 0;
this.earnedStrongHopae = 0;
this.attackSucceed = 0;
this.skin = playerData.skin;
this.isAlive = false;
this.isInThisRoom = true;
......
......@@ -13,7 +13,7 @@ BackGround.otherCharacters = [];
BackGround.drawCharacter = function(scene)
{
RoomData.myself.playerImage = scene.add.sprite(game.config.width / 2, game.config.height * 41 / 48, Enums.characterSkin[WordSpace.myCharacterSkin] + 'Write')
RoomData.myself.playerImage = scene.add.sprite(game.config.width / 2, game.config.height * 41 / 48, Enums.characterSkin[PlayerData.userData.skin] + 'Write')
.setScale(0.45).setDepth(5);
RoomData.myself.position = new Phaser.Math.Vector2(RoomData.myself.playerImage.x, RoomData.myself.playerImage.y);
BackGround.characterPos = BackGround.characterPos.sort(function(){return 0.5-Math.random()});
......@@ -21,7 +21,7 @@ BackGround.drawCharacter = function(scene)
if(element.id != RoomData.myself.id)
{
element.position = BackGround.characterPos.pop();
element.playerImage = scene.add.sprite(element.position.x, element.position.y, Enums.characterSkin[WordSpace.myCharacterSkin] + 'Write')
element.playerImage = scene.add.sprite(element.position.x, element.position.y, Enums.characterSkin[element.skin] + 'Write')
.setScale(0.315).setDepth(5);
element.playerImage.flipX = element.position.x < game.config.width / 2 ? true : false;
element.nicknameText = scene.add.text(element.position.x, element.position.y - 90, element.nickname)
......
......@@ -223,7 +223,7 @@ socket.on('defeat', function(msg) // object player
let victim = RoomData.findPlayer(msg.id);
RoomData.aliveCount--;
victim.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.gameOver]);
victim.playerImage.play(WordSpace.characterAnims[victim.skin][Enums.characterAnim.gameOver]);
if (msg.lastAttack != null)
......@@ -442,7 +442,8 @@ var gameEndMenu = function(isWin)
x: game.config.width / 2,
y: game.config.height / 2,
choices: [
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 150, game.config.height / 2 - 100, 10.2, 'playerStand', 0.7, 'center'),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 - 150, game.config.height / 2 - 100, 10.2,
Enums.characterSkin[PlayerData.userData.skin] + 'Stand', 0.7, 'center'),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 - 180, 10.2,
'button', 1, 'center', '등수 : ' + RoomData.myself.rank + '', 20).layout(),
UIObject.createLabel(ScenesData.gameScene, game.config.width / 2 + 150, game.config.height / 2 - 60, 10.2,
......
......@@ -2,4 +2,4 @@ var Enums = Enums || {};
Enums.characterAnim = { sit: 0, write: 1, notBurning: 2, smallBurning: 3, bigBurning: 4, throw: 5, hit: 6, gameOver: 7 }
Enums.item = {invincible: "무적", nameList: "명단", charge: "충전", clean: "청소", heavy: "중량", dark: "암흑"}
Enums.characterSkin = ["pyeongmin", "yangban"]
\ No newline at end of file
Enums.characterSkin = ["pyeongmin", "sunbi"]
\ No newline at end of file
......@@ -233,6 +233,8 @@ FirebaseClient.prototype.updateUserData = function(key, valueChanged, replace =
case 'killCount':
beforeData.killCount = replace ? (valueChanged) : (beforeData.killCount + valueChanged);
break;
case 'skin':
beforeData.skin = valueChanged;
default:
console.log('[ERROR] database has no key for ' + key);
break;
......@@ -283,5 +285,6 @@ class UserData
this.money = 0;
this.item = [0];
this.killCount = 0;
this.skin = 1;
}
}
\ No newline at end of file
......@@ -40,13 +40,13 @@ ResourceLoader.loadImage = function(scene)
scene.load.spritesheet('pyeongminGameOver', 'assets/image/character/pyeongmin/balladang/pyeong_balladang.png', { frameWidth: 720, frameHeight: 700 });
scene.load.image('pyeongminStand', 'assets/image/character/pyeongmin/pyeong_stand.png');
scene.load.spritesheet('yangbanSit', 'assets/image/character/pyeongmin/pyeong_sit.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('yangbanWrite', 'assets/image/character/pyeongmin/write/pyeong_write.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('yangbanThrow', 'assets/image/character/pyeongmin/throw/pyeong_throw.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('yangbanBurningSmall', 'assets/image/character/pyeongmin/burning/pyeong_burning_small.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('yangbanBurningBig', 'assets/image/character/pyeongmin/burning/pyeong_burning_big.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('yangbanGameOver', 'assets/image/character/pyeongmin/balladang/pyeong_balladang.png', { frameWidth: 720, frameHeight: 700 });
scene.load.image('yangbanStand', 'assets/image/character/pyeongmin/pyeong_stand.png');
scene.load.spritesheet('sunbiSit', 'assets/image/character/sunbi/sunbi_sit.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('sunbiWrite', 'assets/image/character/sunbi/sunbi_write.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('sunbiThrow', 'assets/image/character/sunbi/sunbi_throw.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('sunbiBurningSmall', 'assets/image/character/sunbi/sunbi_burning_small.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('sunbiBurningBig', 'assets/image/character/sunbi/sunbi_burning_big.png', { frameWidth: 521, frameHeight: 610 });
scene.load.spritesheet('sunbiGameOver', 'assets/image/character/sunbi/sunbi_die.png', { frameWidth: 720, frameHeight: 700 });
scene.load.image('sunbiStand', 'assets/image/character/sunbi/sunbi_stand.png');
scene.load.spritesheet('wordBreak', 'assets/image/word/wordbreak.png', { frameWidth: 180, frameHeight: 180 });
scene.load.spritesheet('hopaeSceneInput', 'assets/image/word/hopaeSceneInput.png', { frameWidth: 239, frameHeight: 45 });
......
......@@ -136,7 +136,7 @@ var menuScene = new Phaser.Class(
this.organizeHopae();
this.createCurrentHopae();
this.myCharacter = this.add.sprite(game.config.width / 2, game.config.height / 2, Enums.characterSkin[WordSpace.myCharacterSkin] + 'Stand')
this.myCharacter = this.add.sprite(game.config.width / 2, game.config.height / 2, Enums.characterSkin[PlayerData.userData.skin] + 'Stand')
.setOrigin(0.5, 0.5).setDepth(5).setScale(0.8);
this.roomEnterDialog = this.rexUI.add.dialog({
......@@ -171,7 +171,7 @@ var menuScene = new Phaser.Class(
this.roomEnterDialog
.on('button.click', function (button, groupName, index) {
if(index == 0) socket.emit('enterRoom', PlayerData.nickname);
if(index == 0) socket.emit('enterRoom', {nickname: PlayerData.nickname, skin: PlayerData.userData.skin});
else
{
this.roomEnterDialog.setVisible(false);
......
......@@ -109,8 +109,8 @@ class NormalWord extends WordObject
if(isNormallyRemoved)
{
Audio.playSound(ScenesData.gameScene, 'killWord');
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.sit]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.sit]);
switch(this.wordGrade)
{
case 0: WordSpace.attackGauge.add(2.5); break;
......@@ -191,8 +191,8 @@ class AttackWord extends WordObject
if(isNormallyRemoved)
{
Audio.playSound(ScenesData.gameScene, 'killWord');
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.sit]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.sit]);
switch(this.wordGrade)
{
case 0: WordSpace.attackGauge.add(2.5); break;
......@@ -273,8 +273,8 @@ class NameWord extends WordObject
if(isNormallyRemoved)
{
Audio.playSound(ScenesData.gameScene, 'killWord');
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.sit]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.sit]);
ScenesData.gameScene.physics.world.removeCollider(this.physicsObj.wordCollider);
WordSpace.wordGroup.forEach(function(element)
{
......@@ -357,8 +357,8 @@ class ItemWord extends WordObject
if(isNormallyRemoved)
{
Audio.playSound(ScenesData.gameScene, 'killWord');
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.sit]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.write]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.sit]);
WordSpace.attackGauge.add(0.5);
switch(this.itemType)
{
......
......@@ -14,7 +14,6 @@ WordSpace.pyeongminAnims = [];
WordSpace.characterAnims = Array(2).fill(null).map(() => Array());
WordSpace.myCharacterSkin = 0;
WordSpace.wordGroup = [];
WordSpace.nameGroup = [];
......@@ -280,16 +279,16 @@ WordSpace.findWord = function(wordText)
switch(tempAttackOption.wordCount)
{
case 2:
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.notBurning]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.notBurning]);
break;
case 3:
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.smallBurning]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.smallBurning]);
break;
case 4:
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.smallBurning]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.smallBurning]);
break;
case 5:
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.bigBurning]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.bigBurning]);
break;
default:
console.log('Improper attack option.');
......@@ -399,8 +398,8 @@ WordSpace.attack = function(wordText, grade)
WordSpace.attackGauge.resetValue();
WordSpace.setPlayerTyping.add(wordText);
RoomData.myself.playerImage.play(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.throw]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[WordSpace.myCharacterSkin][Enums.characterAnim.sit]);
RoomData.myself.playerImage.play(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.throw]);
RoomData.myself.playerImage.anims.chain(WordSpace.characterAnims[PlayerData.userData.skin][Enums.characterAnim.sit]);
Input.attackOption.isHeavy = false;
Input.attackOption.isDark = false;
}
......
......@@ -29,6 +29,7 @@ io.on('connection', function(socket)
{
id: GameServer.getPlayerNumber(),
nickname: '게스트',
skin: 0,
currentRoom: null,
playingData: null,
isReceivable: false
......@@ -45,11 +46,12 @@ io.on('connection', function(socket)
socket.on('enterRoom', function(msg) // string new_nickname
{
if(msg.length < 1) socket.emit('alert' ,'errNicknameEmpty');
if(msg.nickname.length < 1) socket.emit('alert' ,'errNicknameEmpty');
else
{
socket.playerData.nickname = msg;
console.log(new Date().toLocaleTimeString('ko-KR') + ' ['+socket.playerData.id+'] nickname set to ' + msg);
socket.playerData.nickname = msg.nickname;
socket.playerData.skiin = msg.skin;
console.log(new Date().toLocaleTimeString('ko-KR') + ' ['+socket.playerData.id+'] nickname set to ' + msg.nickname);
GameServer.enterEmptyRoom(socket);
}
});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment