Example #1
0
    public bool CanAttackToTarget(SpacecraftEntity attacker, SpacecraftEntity target)
    {
        if (attacker == null || target == null)
        {
            return(false);
        }

        //优先判断是否可被攻击
        if (!target.GetCanBeAttack())
        {
            return(false);
        }

        CfgEternityProxy cfgEternityProxy = GameFacade.Instance.RetrieveProxy(ProxyName.CfgEternityProxy) as CfgEternityProxy;

        //直接调用获取阵营关系的函数,岂不简单些?
        CampRelation relation = cfgEternityProxy.GetRelation(attacker.GetCampID(), target.GetCampID());

        return(relation == CampRelation.Enemy);

        //int attCamp = attacker.GetCampID();
        //int tarCamp = target.GetCampID();
        //CampVO_MergeObject? campVO = cfgCampProxy.GetCampRelationVO(attCamp, tarCamp);
        //if (campVO == null)
        //{
        //	Debug.LogErrorFormat("阵营信息不存在. Camp1: {0}, Camp2: {1}", attCamp, tarCamp);
        //	return false;
        //}
        //else
        //{
        //	int prestage = attacker.GetPrestige(tarCamp);
        //	// 通过声望值判断是否可攻击
        //	return prestage > campVO.Value.PrestigeEnemyMin && prestage < campVO.Value.PrestigeEnemyMax;
        //}
    }