protected override Piece initPiece(PieceLoadInfo loadInfo, int x, int y) { if (_inspectInfos == null) { _inspectInfos = new Dictionary <int, CoVidPlayerInspectInfo>(); foreach (var playerInfo in coVidPlayers) { _inspectInfos.Add(playerInfo.Id, playerInfo); } } var piece = base.initPiece(loadInfo, x, y); CoVidAttribute coVidAttribute = null; switch (loadInfo.PieceName) { case "pawn": coVidAttribute = new PawnCoVidAttribute(); break; case "knight": coVidAttribute = new KnightCoVidAttribute(); break; case "luke": coVidAttribute = new LukeCoVidAttribute(); break; case "bishop": coVidAttribute = new BishopCoVidAttribute(); break; case "queen": coVidAttribute = new QueenCoVidAttribute(); break; case "king": coVidAttribute = new KingCoVidAttribute(); break; } if (coVidAttribute != null) { piece.addAttribute(coVidAttribute); var coVidPlayer = _inspectInfos[loadInfo.Player.getId()].Player; piece.addAttribute(new StayHomeAttribute(coVidAttribute, coVidPlayer)); } return(piece); }
void initAttr() { int inited = 0; if (piece.hasAttribute <CoVidAttribute>()) { _coVidAttribute = piece.getAttribute <CoVidAttribute>(); inited++; } if (piece.hasAttribute <StayHomeAttribute>()) { _stayHomeAttribute = piece.getAttribute <StayHomeAttribute>(); inited++; } if (inited >= 2) { _initialized = true; } }
public StayHomeAttribute(CoVidAttribute attribute, CoVidPlayer player) { _coVid = attribute; _player = player; }