aboutsummaryrefslogtreecommitdiff
path: root/go/game/permanent.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/game/permanent.go')
-rw-r--r--go/game/permanent.go80
1 files changed, 40 insertions, 40 deletions
diff --git a/go/game/permanent.go b/go/game/permanent.go
index cd5cbfe6..78966cfe 100644
--- a/go/game/permanent.go
+++ b/go/game/permanent.go
@@ -24,25 +24,26 @@ type Permanent interface {
Marks(PermanentMark) int
adjustMarks(PermanentMark, int)
- String() string
- Fight(p Permanent)
- AddDamage(damage int)
IsDestroyed() bool
Attackable() bool
+ String() string
+
CurrentlyAvailActions() []Action
AvailActions() []Action
IsAvailableTile(*Tile) bool
+ fight(p Permanent)
+ addDamage(damage int)
setContainingPerm(p Permanent)
addPermanentToPile(p Permanent)
clearPile()
- RemovePermanentFromPile(p Permanent)
+ removePermanentFromPile(p Permanent)
onPile(containing Permanent)
onUnpile(containing Permanent)
onDrop(containing Permanent)
}
-type PermanentBase struct {
+type permanentBase struct {
card *Card
tile *Tile
damage int
@@ -54,12 +55,12 @@ type PermanentBase struct {
marks map[PermanentMark]int
}
-func NewPermanentBase(card *Card, tile *Tile, owner *Player) PermanentBase {
+func newPermanentBase(card *Card, tile *Tile, owner *Player) permanentBase {
if tile != nil && tile.Permanent != nil {
log.Panicf("Tile at %v already occupied by %v", tile.Position, tile.Permanent)
}
- return PermanentBase{
+ return permanentBase{
card: card,
tile: tile,
controller: owner,
@@ -67,16 +68,16 @@ func NewPermanentBase(card *Card, tile *Tile, owner *Player) PermanentBase {
}
}
-func (p *PermanentBase) Card() *Card { return p.card }
-func (p *PermanentBase) Tile() *Tile { return p.tile }
-func (p *PermanentBase) SetTile(t *Tile) { p.tile = t }
-func (p *PermanentBase) Damage() int { return p.damage }
-func (p *PermanentBase) ContainingPerm() Permanent { return p.containingPerm }
-func (p *PermanentBase) Pile() []Permanent { return p.pile }
-func (p *PermanentBase) Controller() *Player { return p.controller }
-func (p *PermanentBase) Owner() *Player { return p.owner }
+func (p *permanentBase) Card() *Card { return p.card }
+func (p *permanentBase) Tile() *Tile { return p.tile }
+func (p *permanentBase) SetTile(t *Tile) { p.tile = t }
+func (p *permanentBase) Damage() int { return p.damage }
+func (p *permanentBase) ContainingPerm() Permanent { return p.containingPerm }
+func (p *permanentBase) Pile() []Permanent { return p.pile }
+func (p *permanentBase) Controller() *Player { return p.controller }
+func (p *permanentBase) Owner() *Player { return p.owner }
-func (p *PermanentBase) String() string {
+func (p *permanentBase) String() string {
if p.Tile() != nil {
return fmt.Sprintf("%s's %s@%v",
p.Controller().Name, p.Card().Name, p.Tile().Position)
@@ -96,22 +97,21 @@ func DealDamage(src, dest Permanent, damage int) {
actualDamage = 0
}
}
- dest.AddDamage(actualDamage)
+ dest.addDamage(actualDamage)
}
-func (p *PermanentBase) AddDamage(damage int) {
- p.damage += damage
-}
+func (p *permanentBase) addDamage(damage int) { p.damage += damage }
+func (p *permanentBase) fight(Permanent) {}
-func (p *PermanentBase) Effects() []string {
+func (p *permanentBase) Effects() []string {
return append(p.card.getEffects(), p.tmpEffects...)
}
-func (p *PermanentBase) HasEffect(effect string) bool {
+func (p *permanentBase) HasEffect(effect string) bool {
return slices.Contains(p.tmpEffects, effect) || p.card.hasEffect(effect)
}
-func (p *PermanentBase) XEffect(effect string) (int, error) {
+func (p *permanentBase) XEffect(effect string) (int, error) {
x, err := p.card.getXEffect(effect)
for _, e := range p.tmpEffects {
@@ -130,7 +130,7 @@ func (p *PermanentBase) XEffect(effect string) (int, error) {
return x, err
}
-func (p *PermanentBase) Marks(mark PermanentMark) int {
+func (p *permanentBase) Marks(mark PermanentMark) int {
if amount, found := p.marks[mark]; found {
return amount
}
@@ -138,7 +138,7 @@ func (p *PermanentBase) Marks(mark PermanentMark) int {
return 0
}
-func (p *PermanentBase) adjustMarks(mark PermanentMark, amount int) {
+func (p *permanentBase) adjustMarks(mark PermanentMark, amount int) {
if amount, found := p.marks[mark]; found {
p.marks[mark] += amount
} else {
@@ -146,18 +146,18 @@ func (p *PermanentBase) adjustMarks(mark PermanentMark, amount int) {
}
}
-func (p *PermanentBase) CurrentlyAvailActions() []Action { return nil }
-func (p *PermanentBase) AvailActions() []Action { return nil }
+func (p *permanentBase) CurrentlyAvailActions() []Action { return nil }
+func (p *permanentBase) AvailActions() []Action { return nil }
-func (p *PermanentBase) IsAvailableTile(tile *Tile) bool {
+func (p *permanentBase) IsAvailableTile(tile *Tile) bool {
return tile.IsAvailableForCard(p.card)
}
-func (p *PermanentBase) setContainingPerm(containing Permanent) { p.containingPerm = containing }
-func (p *PermanentBase) addPermanentToPile(a Permanent) { p.pile = append(p.pile, a) }
-func (p *PermanentBase) clearPile() { p.pile = nil }
+func (p *permanentBase) setContainingPerm(containing Permanent) { p.containingPerm = containing }
+func (p *permanentBase) addPermanentToPile(a Permanent) { p.pile = append(p.pile, a) }
+func (p *permanentBase) clearPile() { p.pile = nil }
-func (p *PermanentBase) RemovePermanentFromPile(rm Permanent) {
+func (p *permanentBase) removePermanentFromPile(rm Permanent) {
for i, piled := range p.pile {
if piled != rm {
continue
@@ -169,26 +169,26 @@ func (p *PermanentBase) RemovePermanentFromPile(rm Permanent) {
}
}
-func (b *PermanentBase) onPile(containing Permanent) { b.Card().Impl.onPile(containing) }
-func (b *PermanentBase) onUnpile(containing Permanent) { b.Card().Impl.onUnpile(containing) }
-func (b *PermanentBase) onDrop(dropped Permanent) {
+func (b *permanentBase) onPile(containing Permanent) { b.Card().Impl.onPile(containing) }
+func (b *permanentBase) onUnpile(containing Permanent) { b.Card().Impl.onUnpile(containing) }
+func (b *permanentBase) onDrop(dropped Permanent) {
b.onUnpile(dropped.ContainingPerm())
b.Card().Impl.onDrop(dropped)
}
-func AddPermanentToPile(containing, p Permanent) {
+func addPermanentToPile(containing, p Permanent) {
p.setContainingPerm(containing)
containing.addPermanentToPile(p)
p.onPile(containing)
}
-func RemovePermanentFromPile(containing, rm Permanent) {
- containing.RemovePermanentFromPile(rm)
+func removePermanentFromPile(containing, rm Permanent) {
+ containing.removePermanentFromPile(rm)
rm.onUnpile(containing)
rm.setContainingPerm(nil)
}
-func DropPile(containing Permanent) {
+func dropPile(containing Permanent) {
for _, p := range containing.Pile() {
p.onDrop(p)
p.setContainingPerm(nil)
@@ -207,7 +207,7 @@ func enterTileOrPile(p Permanent, t *Tile) {
if t.Permanent == nil {
enterTile(p, t)
} else {
- AddPermanentToPile(t.Permanent, p)
+ addPermanentToPile(t.Permanent, p)
p.SetTile(nil)
}
}