Beispiel #1
0
func (self *Graph) Coasts(prov common.Province) (result []common.Province) {
	if node, ok := self.nodes[prov.Super()]; ok {
		for _, sub := range node.subs {
			result = append(result, sub.getName())
		}
	}
	return
}
Beispiel #2
0
func (self *State) AddBounce(src, dst common.Province) {
	if existing, ok := self.bounces[dst.Super()]; ok {
		existing[src.Super()] = true
	} else {
		self.bounces[dst.Super()] = map[common.Province]bool{
			src.Super(): true,
		}
	}
}
Beispiel #3
0
func (self *State) Bounce(src, dst common.Province) bool {
	if sources, ok := self.bounces[dst.Super()]; ok {
		if dislodger, ok := self.dislodgers[dst.Super()]; ok {
			if len(sources) == 1 && sources[dislodger.Super()] {
				return false
			}
		}
		return true
	}
	if self.dislodgers[dst.Super()] == src.Super() {
		return true
	}
	return false
}
Beispiel #4
0
func (self *Graph) SC(n common.Province) (result *common.Nation) {
	if node, ok := self.nodes[n.Super()]; ok {
		result = node.sc
	}
	return
}
Beispiel #5
0
func (self *State) SetDislodger(attacker, victim common.Province) {
	self.dislodgers[attacker.Super()] = victim.Super()
}