|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
|
|
namespace ET
|
|
|
|
{
|
|
|
|
[FriendClass(typeof (People))]
|
|
|
|
[FriendClass(typeof (Gather))]
|
|
|
|
public static class PeopleOperate
|
|
|
|
{
|
|
|
|
public static int StopBehave(Unit unit, People people)
|
|
|
|
{
|
|
|
|
var peopleBehave = people.GetBehaveType();
|
|
|
|
var targetId = people.GetTargetId();
|
|
|
|
switch (peopleBehave)
|
|
|
|
{
|
|
|
|
case ConstBehaveType.BEHAVE_GATHER:
|
|
|
|
case ConstBehaveType.BEHAVE_PREPARE_GATHER:
|
|
|
|
var gather = unit.GetComponent<GatherComponent>().GetChild<Gather>(targetId);
|
|
|
|
if (gather == null)
|
|
|
|
{
|
|
|
|
return ErrorCode.ERR_GatherNotFound;
|
|
|
|
}
|
|
|
|
|
|
|
|
gather.StartGather(people.Id);
|
|
|
|
break;
|
|
|
|
case ConstBehaveType.BEHAVE_CONSTRUCT:
|
|
|
|
case ConstBehaveType.BEHAVE_PREPARE_CONSTRUCT:
|
|
|
|
var construct = unit.GetComponent<GatherComponent>().GetChild<Construct>(targetId);
|
|
|
|
if (construct == null)
|
|
|
|
{
|
|
|
|
return ErrorCode.ERR_ConstructNotFound;
|
|
|
|
}
|
|
|
|
construct.StopConstruct(people.Id);
|
|
|
|
break;
|
|
|
|
case ConstBehaveType.BEHAVE_PREPARE_CABIN:
|
|
|
|
case ConstBehaveType.BEHAVE_CABIN:
|
|
|
|
var canbin = unit.GetGrandChild<Cabin>(targetId);
|
|
|
|
if (canbin == null)
|
|
|
|
{
|
|
|
|
return ErrorCode.ERR_CabinNotFound;
|
|
|
|
}
|
|
|
|
canbin.PeopleLeave();
|
|
|
|
break;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
people.BehaveIdle();
|
|
|
|
return ErrorCode.ERR_Success;
|
|
|
|
}
|
|
|
|
|
|
|
|
public static int ChangeBehave(Unit unit, People people, int behaveType, long targetId = 0)
|
|
|
|
{
|
|
|
|
var result = StopBehave(unit, people);
|
|
|
|
if (result != ErrorCode.ERR_Success)
|
|
|
|
{
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
people.TargetId = targetId;
|
|
|
|
people.SetBehaveType(behaveType);
|
|
|
|
return ErrorCode.ERR_Success;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|